小编Far*_*ook的帖子

Thymeleaf th:每个用th过滤:if

我需要迭代,并创建<span>针对每个元件componentcomponents,其具有阵列name'MATERIAL'

我的代码如下

<span th:each="component : ${body.components}" 
      th:object="${component}">
        <button th:if="*{name} == 'MATERIAL'" 
                th:text="*{title}"></button>
</span>
Run Code Online (Sandbox Code Playgroud)

这段代码一切正常,直到它产生一组空<span>元素,如果name它不相等'MATERIAL'.我不希望这个空<span>元素被创建.

我也试过以下

<span th:each="component : ${body.components}" 
      th:object="${component}"
      th:if="*{name} == 'MATERIAL'">
         <button th:text="*{title}"></button>
</span>
Run Code Online (Sandbox Code Playgroud)

这导致空输出并且根本不打印任何内容.有人可以帮我这个.

java spring spring-mvc thymeleaf spring-boot

9
推荐指数
1
解决办法
1万
查看次数

在Spring中实现CrudRepository.什么是我应该遵循的最佳设计?

我有来自CrudRepository的User Repository扩展,如下所示

public interface UserRepository extends CrudRepository<User, Long>, DatatablesCriteriasRepository<User> 
Run Code Online (Sandbox Code Playgroud)

DatatablesCriteriasRepository 具有需要针对不同存储库单独实现的功能.

所以我创建了这样的存储库实现类.在impl包中.

public class UserRepositoryImpl implements DatatablesCriteriasRepository<User> 
Run Code Online (Sandbox Code Playgroud)

请注意,这只是为了实现这些功能DatatablesCriteriasRepository.我不想覆盖CrudRepository框架中提供的默认功能.

但是,如果我做这样的事情,它将更适合代码设计,正如名称所暗示的UserRepositoryImpl实际实现UserRepository.

public class UserRepositoryImpl implements UserRepository 
Run Code Online (Sandbox Code Playgroud)

但同样这将迫使我扩展UserRepository接口中的所有函数.如何通过良好的代码设计解决这个问题?

UserRepositoryImpl它实现时可以有这个名字DatatablesCriteriasRepository吗?

java spring design-patterns spring-data

8
推荐指数
1
解决办法
1万
查看次数

Java Order by对不同子对象类型的一对多关系

我需要根据idif ExamObjectis of对 ExamObjects 进行ExamTask排序,并根据questionNumberif it is 对其进行排序ExamQuestion。我怎样才能做到这一点?

重要的

考试将只有一组ExamTaskExamQuestion。换句话说,一项考试不能混合使用 ExamTask 和 ExamQuestion。

背景资料

我有一个名为Exam此类的实体类可以包含一个或多个ExamObject实体。

@Entity
public class Exam {
   @OneToMany(mappedBy = "exam" ...)
   @OrderBy("id") //I need to order this by question number if its ExamQuestion
   private Set<ExamObject> objects;
   ...
}
Run Code Online (Sandbox Code Playgroud)

ExamObject 可以是以下两种类型,使用 JOINED

  1. ExamTask 延伸 ExamObject
  2. ExamQuestion它扩展ExamObject并有一个名为的列questionNumber

ExamObject

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class ExamObject {    
    @Id …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-data

8
推荐指数
3
解决办法
6049
查看次数

JPQL在@Query注释中检查大于今天的日期

我想查看天气validTill日期大于today使用JPQL.我知道我可以通过以下方式实现这一目标.

Query q = em.createQuery("select e from MyEntity e where e.validTill > :today ");
Run Code Online (Sandbox Code Playgroud)

并传递:today参数.但这不是我想要的.我想在Spring中使用@Query注释来做到这一点CrudRepository.

这是我的代码段 CrudRepository

@Query("SELECT e FROM MyEntity e WHERE e.validFrom < TODAY")
Iterable<MyEntity> findAllValid();
Run Code Online (Sandbox Code Playgroud)

我不知道应该把这个地方放到TODAY今天的日期.请帮我.

java spring jpql spring-data spring-boot

7
推荐指数
1
解决办法
2万
查看次数

当bean内部调用该方法时,Spring AOP无法正常工作

我在我的应用程序中编写了几个Aspects.所有其他人的工作除以下情况外.

服务接口

package com.enbiso.proj.estudo.system.service;
...
public interface MessageService {
     ...
     Message reply(Message message);
     Message send(Message message);
     ...
}
Run Code Online (Sandbox Code Playgroud)

服务实施

package com.enbiso.proj.estudo.system.service.impl;
....
@Service("messageService")
public class MessageServiceImpl implements MessageService {
   ...
   @Override
   public Message reply(Message message) {
        ...
        return this.send(message);
   }

   @Override
   public Message send(Message message) {
         ...
   }
}
Run Code Online (Sandbox Code Playgroud)

方面

@Aspect
@Component
public class NewMessageAspect {
    ...
    @AfterReturning(value = "execution(* com.enbiso.proj.estudo.system.service.impl.MessageServiceImpl.send(..))", 
                    returning = "message")
    public void perform(Message message){
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试执行该send方法时,调试点不会在方面受到影响perform.

UPDATE

我做了一些调查,发现当send从 …

java spring spring-aop spring-boot

4
推荐指数
1
解决办法
7027
查看次数

在 spring boot 中添加外部静态文件(css、js、png ...)

背景


我有一个spring boot应用程序,该应用程序将logo.png文件添加到static资源文件的文件夹中,该文件最终内置到执行中使用的 jar 文件中。

这个 jar 应用程序需要在不同客户端的多个实例中运行。所以我所做的是创建一个外部application.properties文件来区分每个用户的设置。 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

问题


但问题是,我需要更改应用程序每个实例的徽标。我无法将客户徽标嵌入到我的应用程序 jar 中。相反,我需要像我的 application.properties 一样将它保持在外部。

目前,我所做的是logo.pngjar执行的同一文件夹中检查文件,如果是,则读取文件,获取base64数据并将其显示在img标签中。

但我希望这作为静态内容以适当的方式完成。我需要将静态内容具体化。所以我可以让每个客户都有一个特定的 jar 实例,运行不同的静态资源内容

例如。我需要保留如下外部静态文件,并从我的视图中的 urlhrefsrchtml 标签的属性进行访问。

概括


所需的文件夹结构

+ runtime
  - myapp-0.1.0.jar
  - application.properties
  + static
    - logo.png
Run Code Online (Sandbox Code Playgroud)

应该可以访问

<img th:src="@{/logo.png}" />
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc thymeleaf spring-boot

4
推荐指数
1
解决办法
5528
查看次数

如何查找文本是否包含url字符串

如何查找文本是否包含url字符串.我的意思是,如果我有

Sometexthttp://daasddas some text
Run Code Online (Sandbox Code Playgroud)

我希望将http:// daasddas作为javascript的链接进行处理或制作

javascript

3
推荐指数
1
解决办法
2万
查看次数

如何在百里香中的邮件属性文件中使用自定义位置?

我使用thymeleaf和spring,我的messages.properties文件需要具有与模板相同的名称,以便它们起作用。我试图使用webConfigurer.Java创建自定义路径,但是它不起作用。

WebConfigurer.java来源:

...
...
@EnableWebMvc
@EnableTransactionManagement
@Configuration
@ComponentScan({"en.irp.project.*"})
@PropertySource("classpath:/application.properties")
@Import({SecurityConfigurer.class})
public class WebConfigurer extends WebMvcConfigurerAdapter {
    ...
    ...
    ...
    @Bean(name="messageSource")
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource resource = new ReloadableResourceBundleMessageSource();
        resource.setBasename("WEB-INF/languages/messages");
        resource.setDefaultEncoding("UTF-8");
        return resource;
    }

    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
        localeChangeInterceptor.setParamName("language");
        return localeChangeInterceptor;
    }

    @Bean(name = "localeResolver")
    public SessionLocaleResolver localeResolver() {
        SessionLocaleResolver localeResolver = new SessionLocaleResolver();
        localeResolver.setDefaultLocale(new Locale("en"));
        return localeResolver;
    }
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

spring thymeleaf

2
推荐指数
1
解决办法
5635
查看次数

在 thymeleaf 中编写 Java 代码

简而言之

我正在尝试在 thymleaf 中创建一个用于分页的标签。


详细

我已经在 jsp 中有一个例子。但我被困在中间。我不知道如何在thymleaf.

我用谷歌搜索了一下,但结果非常令人困惑。

示例jsp:

<%@tag description="Extended input tag to allow for sophisticated errors" pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@tag import="net.megalytics.util.Href" %>

<%@attribute name="currentPage" required="true" type="java.lang.Integer" %>
<%@attribute name="totalPages" required="true" type="java.lang.Integer" %>
<%@attribute name="totalItems" required="true" type="java.lang.Long" %>
<% 
if (totalPages > 1) {
   String currentUrl =     request.getAttribute("javax.servlet.forward.request_uri").toString();
   String queryString = "";
    if (request.getQueryString() != null)
        queryString = request.getQueryString();
    Href newUrl = new Href(currentUrl + "?" + queryString);
    newUrl.addParameter("page", String.valueOf(currentPage));
    String url = …
Run Code Online (Sandbox Code Playgroud)

java jsp thymeleaf

0
推荐指数
1
解决办法
4378
查看次数