spring mvc中 Circular view path 问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc中 Circular view path 问题相关的知识,希望对你有一定的参考价值。

参考技术A javax.servlet.ServletException: Circular view path [adds]: would dispatch back to the current handler URL [/inm-web-kh/adds] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

at org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalResourceView.java:205)

at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:145)

at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)

at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1243)

at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:870)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Thread.java:662)

这个异常,它的意思是没有指定视图结果,让你检查一下你的视图配置,在springmvc中我们是使用viewResolver,通过在controller中return的前缀来决定跳转到相应的视图

两个解决方案

1、添加@ResponseBody

2、将@Controller换成@RestController// 标记为:restful

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

以上是关于spring mvc中 Circular view path 问题的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Spring MVC 加载 view.jsp

Spring MVC View 带继承的字段

java View的Spring MVC配置类

spring mvc view 相关

Springboot问题解决:javax.servlet.ServletException: Circular view path [login]: would dispatch...

Spring MVC各组件近距离接触--下下--05