java – spring boot – 如何正确定义模板位置?

前端之家收集整理的这篇文章主要介绍了java – spring boot – 如何正确定义模板位置?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

经过一段时间的Spring应用程序(以及春季启动),看起来我终于要开始工作了.

我已经通过依赖解决方案和maven build进行了转换.应用程序启动(并且非常快!)但是当我尝试访问时

本地主机:8080

每当我尝试访问应用程序的登录页面时,都会收到以下浏览器消息:

  1. HTTP Status 500 - Request processing Failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "home/homeNotSignedIn",template might not exist or might not be accessible by any of the configured Template Resolvers

src / main / resources文件夹是

  1. src/main/resources
  2. static // CSS,IMG and JS
  3. templates // html
  4. application.properties
  5. log4j.properties

现在,我明白我可能会混合概念,但在我的ApplicationConfiguration.java上我有这个:

  1. @Configuration
  2. @EnableWebMvc
  3. @ComponentScan(basePackages = "b.c.g.c")
  4. public class ApplicationConfiguration extends WebMvcConfigurerAdapter {
  5. @Bean
  6. @Description("Thymeleaf template resolver serving HTML 5")
  7. public ServletContextTemplateResolver templateResolver() {
  8. ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
  9. templateResolver.setCacheable(false);
  10. templateResolver.setTemplateMode("HTML5");
  11. templateResolver.setCharacterEncoding("UTF-8");
  12. templateResolver.setPrefix("classpath:/templates/");
  13. templateResolver.setSuffix(".html");
  14. return templateResolver;
  15. }
  16. @Bean
  17. @Description("Thymeleaf template engine with Spring integration")
  18. public SpringTemplateEngine templateEngine() {
  19. SpringTemplateEngine templateEngine = new SpringTemplateEngine();
  20. templateEngine.addDialect(new SpringSecurityDialect());
  21. templateEngine.addDialect(new LayoutDialect(new GroupingStrategy()));
  22. templateEngine.setTemplateResolver(templateResolver());
  23. return templateEngine;
  24. }
  25. @Bean
  26. @Description("Thymeleaf view resolver")
  27. public ViewResolver viewResolver() {
  28. ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
  29. viewResolver.setTemplateEngine(templateEngine());
  30. viewResolver.setCharacterEncoding("UTF-8");
  31. viewResolver.setCache(false);
  32. viewResolver.setOrder(1);
  33. return viewResolver;
  34. }
  35. // other beans
  36. }

而且,在application.properties上,我有这个:

  1. spring.thymeleaf.check-template-location=true
  2. spring.thymeleaf.prefix=classpath:templates/
  3. spring.thymeleaf.suffix=.html
  4. spring.thymeleaf.mode=HTML5
  5. spring.thymeleaf.encoding=UTF-8
  6. spring.thymeleaf.content-type=text/html
  7. spring.thymeleaf.cache=false

虽然我看到这些摘录告诉了同样的事情,但我打赌一个人可以去,对吧?

那么,实际上有两个问题,

1)如何确保Spring Thymeleaf了解在哪里可以找到模板?

2)如何让应用程序回答localhost:8080 / appName而不是localhost:8080 /?

最佳答案
推荐方法
我将首先回答你的第二个问题

>您已在src / main / resources中定义application.properties或application.yml(Yaml更好)文件. Spring-Boot附带default properties文件,您可以在其中设置上下文路径(查找webproperties),移植所有内容.

  1. server.context-path=/

>要回答第二个问题spring-boot,您可以参考属性文件中的百万美元配置.

猜你在找的Spring相关文章