Circular view path问题
生活随笔
收集整理的這篇文章主要介紹了
Circular view path问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
錯(cuò)誤信息
Circular view path [iframe-1]: would dispatch back to the current handler URL [/study/iframe-1] again
運(yùn)行環(huán)境
springboot項(xiàng)目,沒(méi)有配置模板引擎
代碼
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";} }原因猜測(cè)
如果配置了模板引擎,返回的字符串應(yīng)該是邏輯視圖名,但這里沒(méi)有配置模板引擎,所以返回的字符串還是作為URL,并根據(jù)URL來(lái)查找映射的HandlerMethod,所以又返回到iframe1這個(gè)方法了
改造一下
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,訪問(wèn)localhost/study/iframe-1.html?name=luckee&age=18,控制臺(tái)打印了
瀏覽器顯示404錯(cuò)誤頁(yè)面,這說(shuō)明了以下幾點(diǎn):
- 當(dāng)一個(gè)URL同時(shí)匹配到一個(gè)HandlerMethod和一個(gè)靜態(tài)資源的時(shí)候,最終執(zhí)行的是HandlerMethod而不是返回靜態(tài)資源
- HandlerMethod的參數(shù)加不加@RequestParam都行
- springboot的靜態(tài)資源默認(rèn)放在/resource/static下面
- 如果沒(méi)有配置模板引擎,HandlerMethod返回的字符串會(huì)作為轉(zhuǎn)發(fā)的URL,去重新匹配HandlerMethod,所以request是共享的,從打印了兩次luckee可以看得出來(lái)
一個(gè)疑問(wèn)
使用ajax的時(shí)候,請(qǐng)求的URL一般都是返回?cái)?shù)據(jù)(json或xml或其他格式的),如果URL指向的是一個(gè)完整的頁(yè)面會(huì)是怎樣的效果,是否可以將返回的頁(yè)面當(dāng)做一個(gè)iframe嵌入當(dāng)前頁(yè)面,有待測(cè)驗(yàn)
總結(jié)
以上是生活随笔為你收集整理的Circular view path问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 升级 ThinkPad T61 BIOS
- 下一篇: 中国电信IT研发中心 2019校园招聘