SpringMvc中加载视图解析出错的原因thymeleaf(每日解决一题)

自己改了n多个小时还是没解决的问题,最终找到了原因,就是视图解析的问题,还有就是我们所需要导入的依赖的内容。

Spring所用到的thymeleaf,导入依赖

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

 在配置类中,添加thymeleaf组件的注册:

 让指定路径的页面,经过Thymeleaf引擎翻译后再输出到客户端。

就是这个问题,我研究了一个晚上没看出来,因为我们正常用的视图解析器也是可以解析我们的东西的,但是我们所需要跳转遍历thymeleaf的时候就有问题了,他会不显示出来

如下图所示

而我当时有一个这个视图解析

所以是一直出不来显示的内容的 

 这个就是可以使用的

@Bean
        public ITemplateResolver templateResolver() {
            WebApplicationContext webApplicationContext =
                    ContextLoader.getCurrentWebApplicationContext();
            // ServletContextTemplateResolver需要一个ServletContext作为构造参数,可通过 WebApplicationContext
            ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(webApplicationContext.getServletContext());
            templateResolver.setPrefix("/WEB-INF/templates/");
            templateResolver.setSuffix(".html");
            templateResolver.setCharacterEncoding("UTF-8");
            templateResolver.setTemplateMode(TemplateMode.HTML);
            return templateResolver;
        }
    
        //生成模板引擎并为模板引擎注入模板解析器
        @Bean
        public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) {
            SpringTemplateEngine templateEngine = new SpringTemplateEngine();
            templateEngine.setTemplateResolver(templateResolver);
            return templateEngine;
        }
    
        //生成视图解析器并为解析器注入模板引擎
        @Bean
        public ViewResolver viewResolver(SpringTemplateEngine templateEngine) {
            ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
            viewResolver.setCharacterEncoding("UTF-8");
            viewResolver.setTemplateEngine(templateEngine);
            return viewResolver;
        }

这里之所以选用"/static/"路径,是为了兼容静态资源路径。静态资源配置的路径为"/static/html",在访问路径设置的是"/html/**",访问静态资源的路径为"/html/……"。这样,在访问thymeleaf构建的html页面时,需要加上"/html/",和普通的静态html页面路径一致。

    @GetMapping("/showdata")

    public ModelAndView getModelAndView() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("showdata");
          Student student=new Student("001","zhangsan");
           modelAndView.addObject("stu",student);

        return modelAndView;

    }

配置好最终就可以显示内容了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值