我遇到了一个关于堆栈溢出的错误,我已经见过多次了,但是没有一个解决方案适合我。
基本上,我使用Thymeleaf 3运行Spring Boot 4,当我使用进行本地测试时,我的模板加载很好/格雷德卢·布特伦。
但是,当我打包jar并尝试运行它时,当我访问endpoint时,总是会出现以下错误:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template "/login", template might not exist or might not be accessible by any of the configured Template Resolvers
我的模板都位于src/main/resources/templates/下,并且是以结尾的文件。html,例如登录。html
这是用于配置Thymeleaf模板解析器的@Configuration类:
@Configuration
@EnableWebMvc
@ComponentScan
public class TemplateConfig extends WebMvcConfigurerAdapter {
@Bean
@Description("Thymeleaf template resolver serving HTML 5")
public ClassLoaderTemplateResolver templateResolverClassLoader() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setPrefix("templates/");
templateResolver.setCacheable(false);
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setOrder(2);
return templateResolver;
}
@Bean
public ServletContextTemplateResolver templateResolverServletContext() {
final ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML5");
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setCacheable(false);
return templateResolver;
}
@Bean
@Description("Thymeleaf template engine with Spring integration")
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
final Set<TemplateResolver> templateResolvers = new HashSet<>();
templateResolvers.add(templateResolverClassLoader());
templateResolvers.add(templateResolverServletContext());
templateEngine.setTemplateResolvers(templateResolvers);
return templateEngine;
}
@Bean
@Description("Thymeleaf view resolver")
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding("UTF-8");
return viewResolver;
}
}
此外,如果我删除了上面的整个@Configuration类,它仍然会有相同的错误
我的身体里总是有胸腺素的东西。格拉德尔
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
我错过了什么?谢谢!
我没有和Gradle合作,但是Maven,所以我会尝试考虑一些点,一旦可以帮助其他用户。Spring Bug的版本在配置上几乎没有差异,因此对于这个答案,考虑Spring Bug 1.5。10
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>;
有了这个依赖项,thymeleaf就可以在资源/模板中查找html了。
@SpringBootApplication
@EntityScan(basePackageClasses = { Application.class })
public class Application
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
如果不想缓存模板,请在属性或yaml文件中通知。
Spring百里香。cache=false
现有一个springboot项目,通过扫描二维码查询信息,比如一棵树,扫描二维码后可以看到他相关的信息。但这个项目不止有树类型,还有道路,某个物品。所以将项目分模块开发,核心模块作为一个jar包,复制提供基础服务如数据导入导出。各类型构建成单独的jar。部署时需要那种类型就加载对应的jar。这样做是为了满足不同客户需求。 尝试: java -Xbootclasspath/a:file:./libs
当我更改驻留在/templates中的thymeleaf.html文件时,我希望浏览器自动重新加载页面。我已经安装了live reload插件,它能够与Spring Boot服务器进行握手。但是,在修改thymeleaf模板文件时,我必须手动重新加载浏览器。我可能错过了什么。显然,我启用了,并且还手动更新了属性。spring devtools正确地将更改转发到构建目标中的任何模板或控制器,并且通过
本文向大家介绍springBoot加入thymeleaf模板的方式,包括了springBoot加入thymeleaf模板的方式的使用技巧和注意事项,需要的朋友参考一下 1.新建springBoot项目 在前面有两种方式 2.加入thymeleaf模板引擎 SpringBoot推荐使用thymeleaf模板引擎 语法简单,功能更强大 要想引入thymeleaf,只需要在pom,xml文件中加入如下依
我有一个带有spring boot的java项目,我需要加载应用程序。外部文件夹中的属性和依赖项jar。 我使用该应用程序进行了测试。类路径和加载程序中的属性。路径属性工作正常。 当我使用外部属性文件(我确信它们已被使用)时,加载程序。路径工作不正常,结果为ClassNotFound,因为JAR未加载。 此外,当我启动应用程序与**-Dloader.path=**xxx它的工作正常。 如何使用外部
本文向大家介绍maven+springboot打成jar包的方法,包括了maven+springboot打成jar包的方法的使用技巧和注意事项,需要的朋友参考一下 maven的命令: 1.mvn clean package -DskipTests:在项目目录下运行此命令,在target目录下生成jar包或war包。 2.mvn clean:清理项目生产的临时文件,一般是模块下的target目录 3
本文向大家介绍SpringBoot中的Thymeleaf模板,包括了SpringBoot中的Thymeleaf模板的使用技巧和注意事项,需要的朋友参考一下 一、前言 Thymeleaf 的出现是为了取代 JSP,虽然 JSP 存在了很长时间,并在 Java Web 开发中无处不在,但是它也存在一些缺陷: 1、JSP 最明显的问题在于它看起来像HTML或XML,但它其实上并不是。大多数的JS