spring mvc 如何请求转发和重定向呢?往下看:
由于这部分内容简单,一带而过了。
1.请求转发:
(1)返回ModelAndView :
@RequestMapping(value="/model",method=RequestMethod.GET)
public ModelAndView testForward(ModelAndView model,@RequestParam(value="id",defaultValue="1",required=false)Long id){
User u = getBaseService().get(User.class, id);
model.addObject("user", u);
model.setViewName("forward:index.jsp");
return model;
}
如上代码,如果返回modelAndView 则可以如红色标注,添加forward即可,若想重定向,可把forward替换成redirect便可达到目的。
(2)返回字符串
@RequestMapping(value="/forward",method=RequestMethod.GET)
public String testForward(){
return "forward:/index.action";
}
如上代码红色部分。
2.请求重定向
对于请求转发可以分为:1.带参数 2.不带参数
(1)带参数:
@RequestMapping(value="/redirect",method=RequestMethod.GET)
public String testRedirect(RedirectAttributes attr){
attr.addAttribute("a", "a");
attr.addFlashAttribute("b", "b");
return "redirect:/index.action";
}
带参数可使用RedirectAttributes参数进行传递:
注意:1.使用RedirectAttributes的addAttribute方法传递参数会跟随在URL后面 ,如上代码即为http://****/index.action?a=a
2.使用addFlashAttribute不会跟随在URL后面,会把该参数值暂时保存于session,待重定向url获取该参数后从session中移除,这里的redirect必须是方法映射路径,jsp无效。你会发现redirect后的jsp页面中b只会出现一次,刷新后b再也不会出现了,这验证了上面说的,b被访问后就会从session中移除。对于重复提交可以使用此来完成.
另外,如果使用了RedirectAttributes作为参数,但是没有进行redirect呢?这种情况下不会将RedirectAttributes参数传递过去,默认传forward对应的model,官方的建议是:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"
p:ignoreDefaultModelOnRedirect="true" />
设置下RequestMappingHandlerAdapter 的ignoreDefaultModelOnRedirect属性,这样可以提高效率,避免不必要的检索。
(2)无参数
@RequestMapping(value="/redirect",method=RequestMethod.GET)
public String testRedirect(){
return "redirect:/index.action";
}
分享到:
相关推荐
浅析 重定向 与 跳转 对java 初学者有很大的帮助
Forword Tdesign
主要介绍了SpringSecurity自定义成功失败处理器,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。web应用程序会要求客户端浏览器重新发出请求地址,...
forward kinmatics program with matlab
c++,vs2019,悉尼大学作业,mark全部通过
forword_it_datascience_batch_6th:Forword it数据科学第6个批处理文件
1.在网页上访问URL(HTTP:localhost:8080/Login),服务器获取请求头Get,forword转发到(HTTP:localhost:8080/Login.jsp),在浏览器上显示登录窗口。 2.用户在浏览器填写用户信息,点击submit按钮以Post方式请求服务器...
主要介绍了android手机端与PC端使用adb forword通信的相关资料,需要的朋友可以参考下
// ResultSet.TYPE_FORWORD_ONLY:只进游标 // ResultSet.TYPE_SCROLL_INSENSITIVE:可滚动。但是不受其他用户对数据库更改的影响。 // ResultSet.TYPE_SCROLL_SENSITIVE:可滚动。当其他用户更改数据库时这个记录也会...
all_libtorch_forward.tar.xz
很实用的forward操作应用手册,可以在官网上下载到,不过需要虚拟打印机转化一下,有点儿麻烦.pdf文件将近100mb有点儿大,只能上传50mb以下的文件,所以拆成两部分上传了,part1和part2,第一部分1分,第二部分不用...
加強Forword-Mail/MailList的分類管理 6.加入匯入文字檔帳號密碼的功能,快速轉移你的舊EMail Address (Ps:文字格式:帳號稱謂,帳號,密碼,) 7.加入針對垃圾郵件進行過濾的功能,並可設定關鍵字;並對垃圾郵件進行分類...
Java Web应用开发 15 课堂案例-使用forward动作.docx 学习资料 复习资料 教学资源
经典算法,几乎是必备的。在matlab中使用这个Forward-backward sweep方法,直接套用就行。非常好使。
博文链接:https://shaqiang32.iteye.com/blog/201329
需要转发许多电子邮件给某人吗? 这是一种选择所有您想转发的电子邮件并将其发送给1个收件人的快速方法。 即使您关闭Gmail,浏览器甚至PC,一切仍将继续进行,就好像您一次花时间转发1封电子邮件一样。...
forword-BACK ADAPTIVE FILTER
国产地层油气藏测井评价系统forward用户实用手册,应配合forward工程技术手册使用,提供对forward平台应用的指导。