SpringBoot配置模板引擎之视图解析器失效问题排查

  1、问题排查

    在整合SpringBoot与Httl模板引擎的时候,博主曾遇到过这样的问题:通过浏览器访问一个Controller方法时,返回httl视图,但页面报404错误。

    通过断点调试,访问url时,能进入到我们自定义的接口方法,所以此处可以断定该404错误是由视图解析器无法渲染返回的view所造成的。

    

    

    继续往下调式,当到了DispatcherServlet的resolveViewName方法的时候,我们可以看到我们所配置的HttlViewResolver排在了InternalResourceViewResolver的后面,而对于Spring Mvc来说,视图解析器便是从viewResolvers链中按顺序一个一个往下找,直到找到一个能解析该视图的并不返回null的视图解析器为止。但是对于解析器InternalResourceViewResolver来说,不管能不能解析它都不会返回null,也就是说它拦截了所有的逻辑视图, 让后续的解析器得不到执行,所以正常情况下InternalResourceViewResolver必须放在最后。

      


    不出所料,最终被选中的就是InternalResourceViewResolver视图,也就是说,我们所配置的HttlViewResolver视图被拦截了,所以报了404错误。

    

  

2、问题解决

    既然找到了问题所在,那自然就好办了,将HttlViewResolver的order置为1(默认该order的值是整形数的最大值,该值越小排序越前),问题解决。


    进一步调式,发现代码修改之后HttlViewResolver就排在第一位了

    

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值