Circular view path问题
生活随笔
收集整理的這篇文章主要介紹了
Circular view path问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
錯誤信息
Circular view path [iframe-1]: would dispatch back to the current handler URL [/study/iframe-1] again
運行環境
springboot項目,沒有配置模板引擎
代碼
package me.study.com.springboot.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam;@Controller public class NotRestController {@GetMapping(value = {"/iframe-1"})public String iframe1(String name, @RequestParam String age){System.out.println(name);System.out.println(age);return "iframe-1";} }原因猜測
如果配置了模板引擎,返回的字符串應該是邏輯視圖名,但這里沒有配置模板引擎,所以返回的字符串還是作為URL,并根據URL來查找映射的HandlerMethod,所以又返回到iframe1這個方法了
改造一下
package me.study.com.springboot.controller;@Controller public class NotRestController {@GetMapping(value = {"/iframe-1.html"})public String iframe1(String name, @RequestParam String age){System.out.println(name);System.out.println(age);return "iframe-2";}@GetMapping(value = {"/iframe-2"})public String iframe2(String name){System.out.println(name);return "iframe-1";} }
context path為/study,端口為80,訪問localhost/study/iframe-1.html?name=luckee&age=18,控制臺打印了
瀏覽器顯示404錯誤頁面,這說明了以下幾點:
- 當一個URL同時匹配到一個HandlerMethod和一個靜態資源的時候,最終執行的是HandlerMethod而不是返回靜態資源
- HandlerMethod的參數加不加@RequestParam都行
- springboot的靜態資源默認放在/resource/static下面
- 如果沒有配置模板引擎,HandlerMethod返回的字符串會作為轉發的URL,去重新匹配HandlerMethod,所以request是共享的,從打印了兩次luckee可以看得出來
一個疑問
使用ajax的時候,請求的URL一般都是返回數據(json或xml或其他格式的),如果URL指向的是一個完整的頁面會是怎樣的效果,是否可以將返回的頁面當做一個iframe嵌入當前頁面,有待測驗
總結
以上是生活随笔為你收集整理的Circular view path问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 升级 ThinkPad T61 BIOS
- 下一篇: 中国电信IT研发中心 2019校园招聘