我正在尝试构想我的项目。我有tempalteResolver的两个变体。 如果我使用这个:
@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;
}
我收到一个错误,即使我添加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 \
要使用的最佳模板解析器是什么,为什么?
谢谢!
答案 0 :(得分:0)
您应该将SpringResourceTemplateResolver用于Web项目(使用SpringMvc控制器),将ClassLoaderTemplateResolver用于命令行项目,或者在需要为非Web应用程序生成html(例如发送html电子邮件或类似内容)时使用。
发生第一次错误是因为春季安全性以某种方式未连接到项目和我的
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
modelAndView.addObject("auth", auth);
发送空值。 第二个错误我不知道为什么会发生。