SSM配置视图解析器加载Thymeleaf

项目场景:

提示:这里简述项目相关背景:

项目场景:SSM前端使用Thymeleaf进行编写


解决方案:

在springMvc进行请求拦截后,使用资源放行,之后注册模板引擎、视图解析器

一定进行资源放行

@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/templates/**").addResourceLocations("/templates/");
        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
        registry.addResourceHandler("/img/**").addResourceLocations("/img/");
        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
//        registry.addResourceHandler("/photos/**").addResourceLocations("/photos/", "/Users/zc/Desktop/ems-thymeleaf资料/ems-thymeleaf资料/webdemo_2/src/main/webapp/photos");


        //暴露路径
        String projectDir = System.getProperty("user.dir");
        System.out.println(projectDir);
        String photoPath = "file:" + projectDir + "/photo/";
        System.out.println(photoPath);
        registry.addResourceHandler("/photo/**")
                .addResourceLocations(photoPath);

    }
}

除了必要的ssm依赖之外,还需要在pom文件中导入thymelef与spring整合的依赖

        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
            <version>3.0.11.RELEASE</version>
        </dependency>

        <!-- thymeleaf整合springsecurity5的标签库 -->
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
            <version>3.0.4.RELEASE</version>
        </dependency>

依赖添加完毕,开始注册bean对象

可以在配置类中进行添加,可以新建配置类,也可以在原有的springMvc和spring配置类中写,能让其扫描到就可以,以下是相关代码

/*
    此配置需要注意以下几点:

    templateResolver的prefix与suffix对应你的视图层的文件位置
    templateResolver的characterEncoding和viewResolver的都要设置成UTF-8中文才不会乱码。
    templateResolver的cacheable一定要在开发的时候设置成false不然无法看到实时的页面数据
    */

    //设置模板文件的字符编码
    public final static String CHARACTER_ENCODING = "UTF-8";

    /**
     * thymeleaf模板引擎参数
     */

    //设置模板文件的前缀
    public final static String TEMPLATE_PREFIX = "/templates/";
    //设置模板文件的后缀
    public final static String TEMPLATE_SUFFIX = ".html";
    // 设置模板是否启用缓存
    public final static Boolean TEMPLATE_CACHEABLE = false;
    //设置模板的解析模式
    public final static String TEMPLATE_MODE = "HTML5";
    //设置模板的解析顺序
    public final static Integer TEMPLATE_ORDER = 1;

    /**
     * 模板解析器
     * https://codeleading.com/article/7037112868/#google_vignette
     *
     * @return
     */


    @Bean
    public SpringResourceTemplateResolver templateResolver() {
        SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
        templateResolver.setPrefix(TEMPLATE_PREFIX);
        templateResolver.setSuffix(TEMPLATE_SUFFIX);
        templateResolver.setCacheable(TEMPLATE_CACHEABLE);
        templateResolver.setCharacterEncoding(CHARACTER_ENCODING);
        templateResolver.setTemplateMode(TEMPLATE_MODE);
        templateResolver.setOrder(TEMPLATE_ORDER);
        return templateResolver;
    }

    /**
     * 模板引擎
     *
     * @return
     */
    @Bean
    public SpringTemplateEngine springTemplateEngine(SpringResourceTemplateResolver templateResolver) {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver);
        return templateEngine;
    }

    /**
     * 视图解析器
     *
     * @return
     */
    @Bean
    public ThymeleafViewResolver viewResolver(SpringTemplateEngine springTemplateEngine) {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(springTemplateEngine);
        viewResolver.setCharacterEncoding(CHARACTER_ENCODING);
        return viewResolver;
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值