网站建设怎么设置渐变色,手机网站开发服务商,亚马逊书店购书官网,爱站网站最近开发当中需要在SpringBoot配置多个不同Thymeleaf位置#xff0c;特此记录下相关过程
默认Thymeleaf配置
当我们集成thymeleaf后#xff0c;会有一个默认的配置信息,可以在配置文件当中配置默认的信息#xff0c;修改路径#xff0c;前后缀等等参数
spring:thymeleaf…最近开发当中需要在SpringBoot配置多个不同Thymeleaf位置特此记录下相关过程
默认Thymeleaf配置
当我们集成thymeleaf后会有一个默认的配置信息,可以在配置文件当中配置默认的信息修改路径前后缀等等参数
spring:thymeleaf:prefix: classpath:/templates/mode: HTMLcache: truecheck-template: trueencoding: UTF-8suffix: .htmltemplate-resolver-order: 具体实现则是通过ThymeleafAutoConfiguration类中进行的自动配置 BeanSpringResourceTemplateResolver defaultTemplateResolver() {SpringResourceTemplateResolver resolver new SpringResourceTemplateResolver();resolver.setApplicationContext(this.applicationContext);resolver.setPrefix(this.properties.getPrefix());resolver.setSuffix(this.properties.getSuffix());resolver.setTemplateMode(this.properties.getMode());if (this.properties.getEncoding() ! null) {resolver.setCharacterEncoding(this.properties.getEncoding().name());}resolver.setCacheable(this.properties.isCache());Integer order this.properties.getTemplateResolverOrder();if (order ! null) {resolver.setOrder(order);}resolver.setCheckExistence(this.properties.isCheckTemplate());return resolver;}配置多个thymeleaf模板位置
由于默认配置只能设置一个thymeleaf模板位置所以当需要配置多个模板位置的时候就需要自行定义模板解析即可
Configuration
public class ThymeleafConfig {/*** 这里重写默认的解析配置*/Beanpublic SpringResourceTemplateResolver defaultTemplateResolver(){SpringResourceTemplateResolver springResourceTemplateResolver new SpringResourceTemplateResolver();springResourceTemplateResolver.setOrder(1); //解析匹配优先级 从1开始进行匹配springResourceTemplateResolver.setCacheable(false); //是否缓存springResourceTemplateResolver.setTemplateMode(TemplateMode.HTML); //模板类型springResourceTemplateResolver.setSuffix(.html); //匹配后缀springResourceTemplateResolver.setPrefix(classpath: /theme/); //匹配前缀springResourceTemplateResolver.setCharacterEncoding(UTF-8); //文件编码springResourceTemplateResolver.setCheckExistence(true); //匹配前是否检查文件是否存在 如果需要存在多个TemplateResolver解析器 这里需要设置成true 不然不会进入到后面的解析器return springResourceTemplateResolver;}/*** 这里写第二个解析配置*/Beanpublic SpringResourceTemplateResolver springResourceTemplateResolver(){SpringResourceTemplateResolver springResourceTemplateResolver new SpringResourceTemplateResolver();springResourceTemplateResolver.setOrder(2);springResourceTemplateResolver.setCacheable(false);springResourceTemplateResolver.setTemplateMode(TemplateMode.HTML);springResourceTemplateResolver.setSuffix(.html);springResourceTemplateResolver.setPrefix(file: d:/test/);springResourceTemplateResolver.setCharacterEncoding(UTF-8);springResourceTemplateResolver.setCheckExistence(false); //最后一个解析器需要设置为falsereturn springResourceTemplateResolver;}
}注意事项
ClassLoaderTemplateResolverFileTemplateResolverUrlTemplateResolverSpringResourceTemplateResolver 这四个解析器都可以解析thymeleaf模板不过根据名称就能知道什么情况下使用什么解析器就不详细说明了。defaultTemplateResolver 是否一定要重写不一定如果不重写也没关系只是还能解析到默认配置而已order和checkExistence如果前一个order的TemplateResolver设置checkExistence为false后续order的TemplateResolver将无法正常解析。