我刚刚使用最新版本的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;
}
当部署到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;
}
所以唯一的问题仍然是这个改变是否应该被推入JHipster,如果是这样的话怎么样?
答案 0 :(得分:0)
在生成的文件中,resources / templates / error.html中有一个error.html页面。 '资源/模板'是默认的模板目录。我认为您可以通过将文件复制到模板目录来解决它。
两种配置的区别在于:
当您使用ServletContextTemplateResolver
时,此处的servlet context
表示网络上下文的根目录,它是webapp
目录。
如果您将其更改为ClassLoaderTemplateResolver
,则此处class loader
表示前缀的根目录为class path
,那么它就像是资源'和java类,将被编译并复制到WEB-INF/classes
。