`
yjflfliulei
  • 浏览: 79341 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring MVC 3.1 forword/redirect

阅读更多

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";
}
分享到:
评论

相关推荐

    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