SpringResourceTemplateResolver和ClassLoaderTemplateResolver之间的区别是什么?
我正在尝试重新配置我的项目。我有两种不同的tempalteResolver。 如果我用这个:SpringResourceTemplateResolver和ClassLoaderTemplateResolver之间的区别是什么?,spring,spring-boot,spring-mvc,thymeleaf,Spring,Spring Boot,Spring Mvc,Thymeleaf,我正在尝试重新配置我的项目。我有两种不同的tempalteResolver。 如果我用这个: @Bean public SpringResourceTemplateResolver templateResolver() { SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setApplicati
@Bean
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(applicationContext);
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCacheable(true);
return templateResolver;
}
我得到一个错误,我的模板无法解析thymeleaf语法th,即使我添加xmlns:th=”http://www.thymeleaf.org"
当我使用以下代码时:
@Bean
public ClassLoaderTemplateResolver templateResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCacheable(false);
templateResolver.setCharacterEncoding("UTF-8");
return templateResolver;
}
我得到一个错误,该路径下没有模板(/WEB-INF/templates)
我的模板的完整路径是src\main\webapp\WEB-INF\templates\
要使用的最佳模板解析器是什么?为什么
谢谢
您应该在web项目中使用SpringResourceTemplateResolver(使用SpringMvc控制器),在命令行项目中使用ClassLoaderTemplateResolver,或者在需要为非web应用程序生成html时(例如发送html电子邮件或类似的内容)
第一个错误发生了,因为spring security没有连接到项目和我的
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
modelAndView.addObject("auth", auth);
发送空值。
第二个错误我不知道为什么会发生。没有实际的错误消息,就没有什么可调试的。对于web项目(使用SpringMvc控制器),您应该使用
SpringResourceTemplateResolver
;对于命令行项目,或者当您需要为非web应用程序生成html时,您应该使用ClassLoaderTemplateResolver
。