`
a137268431
  • 浏览: 154513 次
文章分类
社区版块
存档分类
最新评论

spring MVC 3.1 forword/redirect

 
阅读更多

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&lt;wbr&gt;MVC&lt;wbr&gt;3.1&lt;wbr&gt;forword/redirect" style="margin:0px; padding:0px; border:0px; list-style:none"></a></wbr></wbr>
  1. @RequestMapping(value="/redirect",method=RequestMethod.GET)<wbr><wbr></wbr></wbr>
  2. public<wbr>String<wbr>testRedirect(RedirectAttributes<wbr>attr){<wbr><wbr></wbr></wbr></wbr></wbr></wbr>
  3. <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>
  4. <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>
  5. <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>
  6. }<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" /&gt;</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";
}
分享到:
评论

相关推荐

    redirect--and-forword.rar_redirect

    在Java Web开发中,"重定向"(Redirect)和"转发"(Forward)是两种常见的处理请求的方法,它们用于在服务器端控制用户浏览器的行为。理解并熟练掌握这两者对于Java初学者至关重要,因为它们在构建动态网站时起着...

    Forword Tdesign.xls

    Forword Tdesign

    SpringSecurity自定义成功失败处理器的示例代码

    在Spring Security框架中,自定义成功失败处理器是用于定制用户登录认证后的响应行为。默认情况下,Spring Security提供了标准的处理程序来处理用户的登录成功或失败情况,但有时我们需要根据业务需求进行个性化设置...

    forward与redirect区别

    在开发Web应用时,我们经常会遇到“forward”和“redirect”的概念,它们是两种不同的页面跳转方式。理解和掌握它们的区别对于优化用户交互和处理请求流至关重要。 **forward(转发)**: - 转发是由服务器端完成的...

    必联采购网java程序员笔试题.doc

    7. **forword与redirect**:`RequestDispatcher.forward()`在服务器端完成跳转,URL不变,适合内部资源跳转;`response.sendRedirect()`是客户端重定向,URL可见变化,适用于外部资源跳转。 8. **Struts配置文件**...

    FindCatch_forword_zip_

    本篇文章将深入探讨一个名为"FindCatch_forword_zip_"的Matlab程序,它主要用于解决此类问题。 Matlab,全称矩阵实验室,是一种强大的数值计算和可视化工具,特别适合进行复杂的数学运算和数据分析。在机器人学领域...

    Springboot转发重定向实现方式解析

    在 Springboot 中,转发可以使用两种方式实现:使用 "forword" 关键字和使用 Servlet 提供的 API。 1. 使用 "forword" 关键字 使用 "forword" 关键字可以实现请求的转发。例如: ```java @RequestMapping(value="/...

    Struts2中实现页面的跳转

    Struts2作为MVC框架,其核心是Action,它负责处理请求和业务逻辑。当一个请求到达服务器时,Struts2的前端控制器(通常是一个Servlet,如`StrutsPrepareAndExecuteFilter`)拦截请求,并根据配置文件(struts.xml)...

    面试综合整理版(大全).doc

    7. Forword与Redirect:Forward是内部跳转,服务器资源的直接调用,客户端浏览器地址栏不会改变;Redirect是外部跳转,浏览器发起新的HTTP请求,地址栏会显示新URL。 8. Jquery总结:jQuery是一个轻量级的...

    forword_list类的实现

    在C++编程中,`forward_list`是一种单链表数据结构,它被包含在C++标准库中的`&lt;forward_list&gt;`头文件里。这个数据结构主要用于实现无序、线性序列,与`std::list`不同,`forward_list`不支持双向遍历,只能向前遍历...

    idea做一个带有验证码的登录界面,包函forword转发和sendRedirect重定向方法

    在这个过程中,`forward`和`redirect`是两种常见的服务器端处理用户请求的方法。本文将详细讲解如何使用IntelliJ IDEA(Idea)来实现这个功能,并探讨它们的工作原理。 首先,让我们了解一下`forward`和`redirect`...

    forword_it_datascience_batch_6th:Forword it数据科学第6个批处理文件

    "forword_it_datascience_batch_6th" 是一个针对数据科学的学习资源包,它代表了Forword IT在数据科学教育领域的第六批课程内容。这个批处理文件很可能包含了多个学习单元,旨在帮助学员掌握数据科学的核心技能。...

    采用JDBC进行数据库分页查询

    // ResultSet.TYPE_FORWORD_ONLY:只进游标 // ResultSet.TYPE_SCROLL_INSENSITIVE:可滚动。但是不受其他用户对数据库更改的影响。 // ResultSet.TYPE_SCROLL_SENSITIVE:可滚动。当其他用户更改数据库时这个记录也会...

    myeclipse搭建SSH框架图解

    这个框架集合了MVC模式的Struts、依赖注入与事务管理的Spring以及对象关系映射的Hibernate,提供了高效且灵活的开发环境。在MyEclipse中搭建SSH框架,可以极大地提高开发效率,简化项目的结构。 **1. 新建工程** ...

    all_libtorch_forward.tar.xz

    all_libtorch_forward.tar.xz

    forward工程技术手册Ppart1

    很实用的forward操作应用手册,可以在官网上下载到,不过需要虚拟打印机转化一下,有点儿麻烦.pdf文件将近100mb有点儿大,只能上传50mb以下的文件,所以拆成两部分上传了,part1和part2,第一部分1分,第二部分不用...

    delphi 邮件MailServer(SourceCode)源代码

    加強Forword-Mail/MailList的分類管理 6.加入匯入文字檔帳號密碼的功能,快速轉移你的舊EMail Address (Ps:文字格式:帳號稱謂,帳號,密碼,) 7.加入針對垃圾郵件進行過濾的功能,並可設定關鍵字;並對垃圾郵件進行分類...

    Java Web应用开发 15 课堂案例-使用forward动作.docx

    在Java Web应用开发中,`jsp:forward`动作是一个重要的组件,用于实现页面间的转发。这个课堂案例旨在帮助学生理解并掌握如何在JSP文件中有效地使用`jsp:forward`动作,以及它在页面跳转中的作用。...

    android手机端与PC端使用adb forword通信

    PC端与Android手机端使用adb forword通信 服务器端代码如下: import java.io.IOException; import java.io.ObjectOutputStream; import java.net.Socket; import java.net.UnknownHostException; import java.util...

    如何使用Struts标记库

    Struts标记库是Java开发Web应用时常用的工具,它提供了许多预定义的JSP标签,使得开发者能够更方便地创建MVC(Model-View-Controller)架构的应用程序。这些标签简化了HTML表单的处理,使得与Struts框架的交互更为...

Global site tag (gtag.js) - Google Analytics