关于return的几个问题

关于return的几个问题

1、什么时候会跳转到self.jsp,什么时候会跳转到self方法?

2、为什么重定向的时候不会自动加入前后缀?

3、如果要进行请求转发到方法,该怎么写?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、self的访问,由对应的请求地址来决定,访问了self,例如:

http://img1.sycdn.imooc.com//climg/5e561b7a090a868610070249.jpg

如上所示访问self,经过解析就会进入到self方法

http://img1.sycdn.imooc.com//climg/5e561bc6091c099c04720182.jpg

如上所示,进入self方法后,返回self,由于@Controller与视图解析InternalResourceViewResolver配合

http://img1.sycdn.imooc.com//climg/5e561c1e0924383711590225.jpg

如上所示,就会跳转到self.jsp页面。

    2、在返回时,如果指定了forward,或者redirect前缀。则不会添加视图解析器中配置的前缀以及后缀,从而能够访问后台的地址。因为要进行重定向,则需要加上redirect表示重定向,后面需要跳转的网页地址或者对应的Servlet映射,这是spring对地址跳转进行的重新封装。

    3、forward和redirect分别是转发和重定向。如果转发直接return就可以,因为默认是请求转发,如果是重定向,则需要加上redirect,比如:

    return "redirect:to_login";

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 广东田柾国 提问者 #1
    那如果要在当前方法直接转发到另一个方法,但是另一个方法有同名的jsp页面,该怎么书写呢?
    2020-02-26 15:48:58
  • 广东田柾国 提问者 #2
    return "forward:self";这样子吗?
    2020-02-26 15:50:22
  • 好帮手慕小班 回复 提问者 广东田柾国 #3
    同学你好,1、RequestMapping中的value属性(self)不建议重复,如果重复的话程序运行时,它不知道要提交到哪个Controller中。2、当前方法直接转发到另一个方法中,同学可以直接在return中书写对应的地址,比如:return "self"; 默认是请求转发,可以不加forward。 如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2020-02-26 17:11:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师