报错:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Could not resolve view with name 'xxx' in servlet with name 'dispatcherServlet'] with root cause
Could not resolve view with name 'xxx' in servlet with name 'dispatcherServlet' at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java
原因分析:
使用SpringBoot web相关的组件,用到了springMVC,流程是这样的:
报错说的是不能处理某个xxx,并且是dispatcherServlet不能处理这个。
常见的原因是在Controller中,也有可能在过滤器里,或者异常处理器。
里面的调用1-5应该没问题,6以后就是返回的内容。
如果要返回的是JSON,很可能是少了@ResponseBody这样的注解。
对于返回给前端的结果,例如在异常处理器的R<>,时需要加上@ResponseBody的。
当这个错误出现在过滤器中,从代码中不容易调试出来,可以去检查异常处理器。
如何解决:
对于返回的是页面:
- 查看返回页面是否存在
- 检查映射关系是否正确
对于返回的是JSON等数据
- 检查Controller中返回的是否是期望格式的数据,是否要@ResponseBody。或者使用@RestController
- 如果程序在此处应该触发异常处理,就去检查异常处理后返回的是否是JSON这样的格式,同样使用@ResponseBody注解。
- servlet dispatcherServlet DispatcherServlet 39 nameservlet dispatcherservlet 39 name dispatcherservlet 39 name with dispatcherservlet servlet service context dispatcherservlet servlet bean dispatcherservlet exception dispatcherservlet springframework dispatcherservlet springmvc web xml dispatcherservlet文档 笔记 官方 dispatcherservlet path exception circular dispatcherservlet spring boot