AGV*_*AGV 5 thymeleaf jhipster
我刚刚使用最新版本的generator-jhipster 构建了我的应用程序。一切都很好,直到我做了一些更改,导致服务器想要生成错误页面。不幸的是,开箱即用的配置无法解析 error.html 模板:
@Bean
@Description("Thymeleaf template resolver serving HTML 5")
public ServletContextTemplateResolver webTemplateResolver() {
ServletContextTemplateResolver webTemplateResolver = new ServletContextTemplateResolver();
webTemplateResolver.setPrefix("/WEB-INF/templates/");
webTemplateResolver.setSuffix(".html");
webTemplateResolver.setTemplateMode("HTML5");
webTemplateResolver.setCharacterEncoding(CharEncoding.UTF_8);
webTemplateResolver.setOrder(2);
return webTemplateResolver;
}
Run Code Online (Sandbox Code Playgroud)
当部署到 tomcat 时,我收到无穷无尽的错误消息列表...异常处理模板“错误”:解析模板“错误”时出错,模板可能不存在或可能无法被任何配置的模板解析器访问
这对其他人有用吗?如果没有,是否应该在 src/main/webapp/WEB-INF/ 目录中生成 Thymeleaf 模板来解决这个问题?或者,是否应该使用不同的 ViewResolver 配置?
通过将上面改为这样,实际上解决了问题......
public ITemplateResolver webTemplateResolver() {
ClassLoaderTemplateResolver webTemplateResolver = new ClassLoaderTemplateResolver();
webTemplateResolver.setPrefix("templates/");
webTemplateResolver.setSuffix(".html");
webTemplateResolver.setTemplateMode("HTML5");
webTemplateResolver.setCharacterEncoding(CharEncoding.UTF_8);
webTemplateResolver.setOrder(2);
return webTemplateResolver;
}
Run Code Online (Sandbox Code Playgroud)
所以唯一的问题是这个改变是否应该被推送到 JHipster 中,如果是的话如何推送?
在生成的文件中,resources/templates/error.html 中有一个 error.html 页面。“resources/templates”是默认模板目录。我认为您可以通过将文件复制到模板目录中来解决它。
两种配置的区别在于:
当您使用 时ServletContextTemplateResolver,servlet context这里表示 web 上下文的根目录,即webappdir。
如果改成ClassLoaderTemplateResolver,class loader这里表示前缀的根是class path,那么它就像“资源”和 java 类一样,会被编译并复制到WEB-INF/classes.
| 归档时间: |
|
| 查看次数: |
1650 次 |
| 最近记录: |