ThymeLeaf失效原因

目录

    • 1、bug产生背景
    • 2、原因记录
    • 3、解决方法

1、bug产生背景

SSM整合ThymeLeaf时,直接访问html页面,ThymeLeaf效果全部失效。

2、原因记录

ThymeLeaf无法直接在HTML页面中生效(浏览器不识别),需要通过模板引擎解析才能被识别处理。

3、解决方法

要在controller中去定义ThymeLeaf页面的访问路径,然后配置解析器解析,浏览器访问路径后,解析器会对页面进行解析,这样ThymeLeaf就生效了。

需要在SpringMvcConfig配置文件中添加Thymeleaf视图解析器


public class SpringMvcConfig implements WebMvcConfigurer {

	//开启视图解析器
    @Bean
    public SpringResourceTemplateResolver springResourceTemplateResolver() {
        SpringResourceTemplateResolver srtr = new SpringResourceTemplateResolver();
        //设置页面的前后缀
        srtr.setPrefix("/pages/");
        srtr.setSuffix(".html");
        //解决页面的中文乱码
        srtr.setCharacterEncoding("UTF-8");
        srtr.setOrder(1);
        srtr.setTemplateMode("HTML5");
        srtr.setCacheable(false);
        return srtr;
    }	

	//设置模板引擎
    @Bean
    public SpringTemplateEngine springTemplateEngine(SpringResourceTemplateResolver springResourceTemplateResolver, SpringSecurityDialect springSecurityDialect) {
        SpringTemplateEngine ste = new SpringTemplateEngine();
        ste.setTemplateResolver(springResourceTemplateResolver);
        Set set = new HashSet();
        set.add(springSecurityDialect);
        ste.setAdditionalDialects(set);
        return ste;
    }
    
	//配置thymeleaf视图解析器
    @Bean
    public ThymeleafViewResolver thymeleafViewResolver(SpringTemplateEngine springTemplateEngine) {
        ThymeleafViewResolver tvr = new ThymeleafViewResolver();
        tvr.setTemplateEngine(springTemplateEngine);
        tvr.setCharacterEncoding("UTF-8");
        return tvr;
    }    
}

你可能感兴趣的:(SpringBoot,spring,bug)