第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Circular view path问题

Circular view path问题

时间:2020-08-14 11:43:11

相关推荐

Circular view path问题

错误信息

Circular view path [iframe-1]: would dispatch back to the current handler URL [/study/iframe-1] again

运行环境

springboot项目,没有配置模板引擎

代码

package .springboot.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;@Controllerpublic 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 .springboot.controller;@Controllerpublic 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,控制台打印了

luckee18luckee

浏览器显示404错误页面,这说明了以下几点:

当一个URL同时匹配到一个HandlerMethod和一个静态资源的时候,最终执行的是HandlerMethod而不是返回静态资源HandlerMethod的参数加不加@RequestParam都行springboot的静态资源默认放在/resource/static下面如果没有配置模板引擎,HandlerMethod返回的字符串会作为转发的URL,去重新匹配HandlerMethod,所以request是共享的,从打印了两次luckee可以看得出来

一个疑问

使用ajax的时候,请求的URL一般都是返回数据(json或xml或其他格式的),如果URL指向的是一个完整的页面会是怎样的效果,是否可以将返回的页面当做一个iframe嵌入当前页面,有待测验

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。