spring mvc 如何请求转发和重定向呢?往下看:
由于这部分内容简单,一带而过了。
<wbr></wbr>
1.请求转发:
<wbr><wbr>(1)返回<span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; background-color:rgb(250,250,250)">ModelAndView</span><span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; background-color:rgb(250,250,250)"><wbr>:</wbr></span></wbr></wbr>
@RequestMapping(value="/model",method=RequestMethod.GET)
public ModelAndView testForward(ModelAndView <wbr><wbr>model,@RequestParam(value="id",defaultValue="1",required=false)Long id){<br><wbr><wbr><wbr>User u = getBaseService().get(User.class, id);<br><wbr><wbr><wbr>model.addObject("user", u);<br><span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; color:rgb(255,0,0)"><wbr><wbr><wbr>model.setViewName("forward:index.jsp");</wbr></wbr></wbr></span><br><wbr><wbr><wbr>return model;<br>
}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>如上代码,如果返回modelAndView 则可以如红色标注,添加forward即可,若想重定向,可把forward替换成redirect便可达到目的。</wbr>
<wbr></wbr>
(2)返回字符串
<wbr></wbr>
@RequestMapping(value="/forward",method=RequestMethod.GET)
<wbr><wbr>public String testForward(){<br><br><span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; color:rgb(255,0,0)"><wbr><wbr><wbr><wbr>return "forward:/index.action";</wbr></wbr></wbr></wbr></span><br><wbr><wbr>}</wbr></wbr></wbr></wbr>
<wbr>如上代码红色部分。</wbr>
<wbr></wbr>
2.请求重定向
<wbr>对于请求转发可以分为:1.带参数 2.不带参数</wbr>
<wbr></wbr>
(1)带参数:
<wbr></wbr>
Java代码<wbr><wbr><a target="_blank" href="http://blog.sina.com.cn/s/blog_9cd9dc7101016abw.html" title="收藏这段代码" style="text-decoration:none; color:rgb(30,123,88)"><img src="http://yjflfliulei.iteye.com/images/icon_star.png" alt="收藏代码" title="spring<wbr>MVC<wbr>3.1<wbr>forword/redirect" style="margin:0px; padding:0px; border:0px; list-style:none"></a></wbr></wbr>
-
@RequestMapping(value="/redirect",method=RequestMethod.GET)<wbr><wbr></wbr></wbr>
-
public<wbr>String<wbr>testRedirect(RedirectAttributes<wbr>attr){<wbr><wbr></wbr></wbr></wbr></wbr></wbr>
-
<wbr><wbr><wbr><wbr><wbr>attr.addAttribute(<span style="word-wrap:normal; word-break:normal; line-height:17.600000381469727px; color:blue">"a"</span>,<wbr><span style="word-wrap:normal; word-break:normal; line-height:17.600000381469727px; color:blue">"a"</span>);<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
-
<wbr><wbr><wbr><wbr><wbr>attr.addFlashAttribute(<span style="word-wrap:normal; word-break:normal; line-height:17.600000381469727px; color:blue">"b"</span>,<wbr><span style="word-wrap:normal; word-break:normal; line-height:17.600000381469727px; color:blue">"b"</span>);<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
-
<wbr><wbr><wbr><wbr><wbr><span style="word-wrap:normal; word-break:normal; line-height:17.600000381469727px; color:rgb(127,0,85)"><strong>return</strong></span><wbr><span style="word-wrap:normal; word-break:normal; line-height:17.600000381469727px; color:blue">"redirect:/index.action"</span>;<wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
-
}<wbr><wbr></wbr></wbr>
<wbr></wbr>
<wbr></wbr>
<wbr>带参数可使用RedirectAttributes参数进行传递:</wbr>
<wbr><wbr><wbr><span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; color:rgb(255,0,0)"><wbr>注意</wbr></span>:<span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; background-color:rgb(255,255,153)">1.使用RedirectAttributes的addAttribute方法传递参数会跟随在URL后面
,如上代码即为http:/index.action?a=a</span></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr>2.使用addFlashAttribute不会跟随在URL后面,会把该参数值暂时保存于session,待重定向url获取该参数后从session中移除,这里的redirect必须是方法映射路径,jsp无效。你会发现redirect后的jsp页面中b只会出现一次,刷新后b再也不会出现了,这验证了上面说的,b被访问后就会从session中移除。对于重复提交可以使用此来完成.</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr><wbr><wbr>另外,如果使用了RedirectAttributes作为参数,但是没有进行redirect呢?这种情况下不会将RedirectAttributes参数传递过去,默认传forward对应的model,官方的建议是:</wbr></wbr></wbr>
p:ignoreDefaultModelOnRedi<wbr>rect="true" /></wbr>
<wbr>设置下<span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; background-color:rgb(250,250,250)">RequestMappingHandlerAda<wbr>pter 的</wbr></span><span style="word-wrap:normal; word-break:normal; line-height:21.600000381469727px; background-color:rgb(250,250,250)">ignoreDefaultModelOnRedi<wbr>rect属性,这样可以提高效率,避免不必要的检索。</wbr></span></wbr>
<wbr></wbr>
<wbr></wbr>
(2)无参数
<wbr></wbr>
@RequestMapping(value="/redirect",method=RequestMethod.GET)
public String testRedirect(){
return "redirect:/index.action";
}
分享到:
相关推荐
在Java Web开发中,"重定向"(Redirect)和"转发"(Forward)是两种常见的处理请求的方法,它们用于在服务器端控制用户浏览器的行为。理解并熟练掌握这两者对于Java初学者至关重要,因为它们在构建动态网站时起着...
Forword Tdesign
在Spring Security框架中,自定义成功失败处理器是用于定制用户登录认证后的响应行为。默认情况下,Spring Security提供了标准的处理程序来处理用户的登录成功或失败情况,但有时我们需要根据业务需求进行个性化设置...
在开发Web应用时,我们经常会遇到“forward”和“redirect”的概念,它们是两种不同的页面跳转方式。理解和掌握它们的区别对于优化用户交互和处理请求流至关重要。 **forward(转发)**: - 转发是由服务器端完成的...
7. **forword与redirect**:`RequestDispatcher.forward()`在服务器端完成跳转,URL不变,适合内部资源跳转;`response.sendRedirect()`是客户端重定向,URL可见变化,适用于外部资源跳转。 8. **Struts配置文件**...
本篇文章将深入探讨一个名为"FindCatch_forword_zip_"的Matlab程序,它主要用于解决此类问题。 Matlab,全称矩阵实验室,是一种强大的数值计算和可视化工具,特别适合进行复杂的数学运算和数据分析。在机器人学领域...
在 Springboot 中,转发可以使用两种方式实现:使用 "forword" 关键字和使用 Servlet 提供的 API。 1. 使用 "forword" 关键字 使用 "forword" 关键字可以实现请求的转发。例如: ```java @RequestMapping(value="/...
Struts2作为MVC框架,其核心是Action,它负责处理请求和业务逻辑。当一个请求到达服务器时,Struts2的前端控制器(通常是一个Servlet,如`StrutsPrepareAndExecuteFilter`)拦截请求,并根据配置文件(struts.xml)...
7. Forword与Redirect:Forward是内部跳转,服务器资源的直接调用,客户端浏览器地址栏不会改变;Redirect是外部跳转,浏览器发起新的HTTP请求,地址栏会显示新URL。 8. Jquery总结:jQuery是一个轻量级的...
在C++编程中,`forward_list`是一种单链表数据结构,它被包含在C++标准库中的`<forward_list>`头文件里。这个数据结构主要用于实现无序、线性序列,与`std::list`不同,`forward_list`不支持双向遍历,只能向前遍历...
在这个过程中,`forward`和`redirect`是两种常见的服务器端处理用户请求的方法。本文将详细讲解如何使用IntelliJ IDEA(Idea)来实现这个功能,并探讨它们的工作原理。 首先,让我们了解一下`forward`和`redirect`...
"forword_it_datascience_batch_6th" 是一个针对数据科学的学习资源包,它代表了Forword IT在数据科学教育领域的第六批课程内容。这个批处理文件很可能包含了多个学习单元,旨在帮助学员掌握数据科学的核心技能。...
// ResultSet.TYPE_FORWORD_ONLY:只进游标 // ResultSet.TYPE_SCROLL_INSENSITIVE:可滚动。但是不受其他用户对数据库更改的影响。 // ResultSet.TYPE_SCROLL_SENSITIVE:可滚动。当其他用户更改数据库时这个记录也会...
这个框架集合了MVC模式的Struts、依赖注入与事务管理的Spring以及对象关系映射的Hibernate,提供了高效且灵活的开发环境。在MyEclipse中搭建SSH框架,可以极大地提高开发效率,简化项目的结构。 **1. 新建工程** ...
all_libtorch_forward.tar.xz
很实用的forward操作应用手册,可以在官网上下载到,不过需要虚拟打印机转化一下,有点儿麻烦.pdf文件将近100mb有点儿大,只能上传50mb以下的文件,所以拆成两部分上传了,part1和part2,第一部分1分,第二部分不用...
加強Forword-Mail/MailList的分類管理 6.加入匯入文字檔帳號密碼的功能,快速轉移你的舊EMail Address (Ps:文字格式:帳號稱謂,帳號,密碼,) 7.加入針對垃圾郵件進行過濾的功能,並可設定關鍵字;並對垃圾郵件進行分類...
在Java Web应用开发中,`jsp:forward`动作是一个重要的组件,用于实现页面间的转发。这个课堂案例旨在帮助学生理解并掌握如何在JSP文件中有效地使用`jsp:forward`动作,以及它在页面跳转中的作用。...
PC端与Android手机端使用adb forword通信 服务器端代码如下: import java.io.IOException; import java.io.ObjectOutputStream; import java.net.Socket; import java.net.UnknownHostException; import java.util...
Struts标记库是Java开发Web应用时常用的工具,它提供了许多预定义的JSP标签,使得开发者能够更方便地创建MVC(Model-View-Controller)架构的应用程序。这些标签简化了HTML表单的处理,使得与Struts框架的交互更为...