javax.servlet.ServletException: Circular view path [account]: would dispatch back to the current han

     这是在spring boot/MVC 中出现的一个异常
原因:
当没有声明ViewResolver时,spring会注册一个默认的ViewResolver,就是JstlView的实例, 该对象继承自InternalResoureView。
JstlView用来封装JSP或者同一Web应用中的其他资源,它将model对象作为request请求的属性值暴露出来, 并将该请求通过javax.servlet.RequestDispatcher转发到指定的URL.
Spring认为, 这个view的URL是可以用来指定同一web应用中特定资源的,是可以被RequestDispatcher转发的。
也就是说,在页面渲染(render)之前,Spring会试图使用RequestDispatcher来继续转发该请求。

错误代码:
示例1:

@RequestMapping("/index")
public void query(){
//代码内容
}
示例2:

@RequestMapping("/index")
public String query(){
//代码内容
return null;
}
解决方案:
通过原因分析,造成问题有两个因素:

缺省转发
view和path同名
所以,解决方案如下
1.消除缺省转发
2.修改view和path,让他们不同名

例:

@RequestMapping("/index")
public String query(){
//代码内容
return "succeed"; //这里需要返回一个和"/index"不同名的view
}
 
转:https://blog.csdn.net/RuigeO/article/details/83926287

posted @ 2019-05-20 14:48  长袖保暖  阅读(3068)  评论(0编辑  收藏  举报