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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM