@RequestMapping中的相对路径问题 @FDDLC

   日期:2020-10-02     浏览:120    评论:0    
核心提示:前提:1、(应用上下文就是主机,不含项目名!)2、没有配置视图解析器InternalResourceViewResolver(即没有prefix和suffix)3、在【方法返回值】使用相对路径的情况下!!!假设在webapp/x/y(这里的webapp其实就是应用上下文Applicationcontext)下有个Tom.jsp,其中有如下代码:对应Controller的内容:这里的"Mike.jsp"不是"/"开头,因此用的是相对路径。(如果是绝对路径怎么办?...

前提:

1、 (应用上下文就是主机,不含项目名!)

2、没有配置视图解析器InternalResourceViewResolver(即没有prefix和suffix)

3、在【方法返回值】使用相对路径的情况下!!!

 

 

假设在webapp/x/y(这里的webapp其实就是应用上下文Application context)下有个Tom.jsp,其中有如下代码:

对应Controller的内容:

这里的"Mike.jsp"不是"/"开头,因此用的是相对路径。(如果是绝对路径怎么办?很简单,直接跳转就行!)

那么这里的"相对",是指相对谁呢?

是相对webapp/x/y吗?不是的。分析如下:

我们在浏览器中访问:http://localhost:8080/x/y/Tom.jsp

把鼠标放在超链接上,可以看到:

点击超链接,页面变成:

从上图可知,解析前的址址是【/a/b/c/d】,解析后的地址是【/a/b/c/Mike.jsp】。【解析前的地址】(请求地址,或者说是类上的RequestMapping地址+方法上的RequestMapping地址)、【方法返回值】(比如这里的"Mike.jsp")以及【解析后的地址】这三者之间的关系如下:

公式一:【解析后的地址】=【解析前的地址 去掉 最后一个"/"后面的内容("/"保留)】【方法返回值】(等号右边其实就是简单的字符串拼接)

在上面的示例中,【解析前的地址】是"/a/b/c/d",去掉最后一个"/"后面的内容("/"保留)(即d)后变成"/a/b/c/",【方法返回值】为"Mike.jsp",因此【解析后的地址】为"/a/b/c/Mike.jsp"

 

公式二:【解析前的地址】(或者说是请求地址)=【类上的RequestMapping地址】【方法上的RequestMapping地址】

 

进行如下测试:

 

多次验证,公式无误,值得依赖!

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服