我在使用SpringBoot4和ThymeleafWeb及其邮件时遇到了一些问题。
如果我将SpringBoot4单独与Thymeleaf web一起使用,它将能够正常工作,而不会出现任何问题。当我包含Thymeleaf邮件配置时,问题就开始了
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
return viewResolver;
}
@Bean(name ="templateEngine")
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(emailTemplateResolver());
return templateEngine;
}
private TemplateResolver emailTemplateResolver() {
TemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("/templates/");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setOrder(1);
return templateResolver;
}
如果我尝试用它构建和运行,页面将无法加载。因此,我更新了包含web模板的代码。
@Bean公共ViewResolver ViewResolver(){ThymileAfViewResolver ViewResolver=new ThymileAfViewResolver();ViewResolver.setTemplateEngine(templateEngine());返回ViewResolver;}
@Bean(name ="templateEngine")
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(emailTemplateResolver());
templateEngine.addTemplateResolver(webTemplateResolver());
return templateEngine;
}
private TemplateResolver emailTemplateResolver() {
TemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("/templates/");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setOrder(1);
return templateResolver;
}
private TemplateResolver webTemplateResolver() {
TemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setPrefix("/templates/");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setOrder(2);
return templateResolver;
}
这是加载页面时返回的错误:
2016-10-14 14:56:57.137 ERROR 3875 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "index", template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause
org.thymeleaf.exceptions.TemplateInputException: Error resolving template "index", template might not exist or might not be accessible by any of the configured Template Resolvers
需要什么配置才能在spring boot中正确使用thymeleaf web和邮件模板?
这是我对胸腺叶的Spring属性
匿名用户
如果你已经添加了sping-boot-starter-thymeleaf
应该可以在没有任何配置的情况下工作(sping-boot-starter-thymeleaf
对你来说很神奇)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
否则,如果您正在寻找configurae,那么在一个配置类中创建beanTemplateResolver
就可以了。
@Bean
public ClassLoaderTemplateResolver emailTemplateResolver() {
ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
emailTemplateResolver.setSuffix(".html");
emailTemplateResolver.setTemplateMode("HTML5");
emailTemplateResolver.setCharacterEncoding("UTF-8");
emailTemplateResolver.setOrder(1);
return emailTemplateResolver;
}
然后,您必须在src/main/Resources/tem板
中添加您的邮件模板。
因此,例如,如果您创建了一个名为mymail.html
的模板,您应该使用SpringTemplateEngine bean进行处理。在需要的地方注射:
@Autowired
public SpringTemplateEngine templateEngine;
然后处理邮件,添加文件模板的名称wihtout. html
扩展名,并将其作为文本添加到您的JavaMailSender中,如下例所示:
String body = templateEngine.process("mymail", ctx);
javamail.setText(body, true);
我有一个测试类,它有一个带有CsvSource的参数化测试,还有其他使用CapturedOutput的测试。它们单独运行良好,但在一起运行时随机失败,没有任何接触异常。以下是示例代码: 对如何解决这个问题有什么想法吗? PS:我无法创建另一个测试文件。
{“时间戳”:1553613278534,“状态”:400,“错误”:“错误请求”,“消息”:“必需的字符串参数'param2'不存在”,“路径”:“/MyURL/42”} 我希望PUT的工作就像POST一样,但它似乎不是。 不幸的是,我不能将参数作为QueryParam发送,因此我应该维护相同的请求调用,因为我正在重构一个完全以这种方式工作的现有endpoint。
当异常发生在CompletableFuture中时,我试图设置一个默认值,我通过如下方法使其工作: 但是,当我试图在不好的事情发生时异常地使用complete来停止CompletableFuture,并按如下方式跟踪异常时,我无法像刚才那样捕捉到异常。 更新日期2018-06-09谢谢您的帮助,@Daniele 在join()之前封闭的句柄按预期工作。但在这种情况下,
我正在试验把杰克逊和龙目岛结合起来。这些是我的课: 这些是我添加到类spth中的JAR: > 龙目岛:https://projectlombok.org/downloads/lombok.jar(1.16.10version) 此外,Netbeans项目被配置为“保存时不编译”、“生成调试信息”、“报告不推荐使用的API”、“跟踪java依赖项”、“Activacte注释处理”和“编辑器中的Act
问题内容: 在一个活动中,我有一个datePicker(旋转器),它允许用户选择他们的出生日期,在此之下,用户还必须选择他们的性别。我有一个按钮,一旦设置了两个值(日期和性别),就会启用该按钮。尽管首先更改了值,但我现在面临的问题是启用该按钮。当前,用户必须选择其出生日期,然后选择其性别,才能激活该按钮。我希望无论首先更改哪个值都可以启用该按钮。 这是我的代码: 问题答案: 您的代码很少有问题。
服务被调用,但我的问题是这行代码 不起作用,我的意思是它真的调用了adminDao。选择方法,从而从数据库中获取结果。这是我不想要的。你知道如何模拟方法调用吗?