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

spring mvc3中 addFlashAttribute 方法

 
阅读更多
在spring mvc2中,当保存POJO到数据库后,要返回成功页面,如果这个时候要带点信息, 
则要这样: 

 
Java代码  收藏代码
  1.     //第三个参数(UserModel user)默认为绑定对象  
  2.     @RequestMapping(value = "/user/save", method = RequestMethod.POST)  
  3.     public ModelAndView saveUser(HttpServletRequest request, HttpServletResponse response,UserModel user) throws Exception {  
  4.         ModelAndView mv = new ModelAndView("/user/save/result");//默认为forward模式  
  5. //      ModelAndView mv = new ModelAndView("redirect:/user/save/result");//redirect模式  
  6.         mv.addObject("message","保存用户成功!");  
  7.         return mv;  
  8.     }  


而在spring mvc 3.1后,可以这样 
Java代码  收藏代码
  1. @RequestMapping(value = "/user/save", method = RequestMethod.POST)  
  2. public ModelAndView saveUser(UserModel user, RedirectAttributes redirectAttributes) throws Exception {  
  3.     redirectAttributes.addFlashAttribute("message""保存用户成功!");//使用addFlashAttribute,参数不会出现在url地址栏中  
  4.     return "redirect:/user/save/result";  
  5. }  


  来个稍微完整点的例子,首先是一个表单,在其中填入一些信息: 

Java代码  收藏代码
  1. <form:form id="myform" action="saveUserDetails.action" method="POST" commandName="user">  
  2.    <form:input type="text" name="firstName" path="firstName"/>  
  3.    <form:input type="text" name="lastName" path="lastName"/>  
  4.    <form:input type="text" name="email" path="email"/>  
  5.    <input type="submit" value="submit">  
  6. </form:form>  
  7.    

   则在controller中,可以这样: 
Java代码  收藏代码
  1.        @RequestMapping(value="/saveUserDetails.action", method=RequestMethod.POST)  
  2. public String greetingsAction(@Validated User user,RedirectAttributes redirectAttributes){  
  3.               
  4.                someUserdetailsService.save(user);  
  5.       
  6.                redirectAttributes.addFlashAttribute("firstName", user.getFirstName());  
  7.     redirectAttributes.addFlashAttribute("lastName", user.getLastName())  
  8.     return "redirect:success.html";  
  9. }  


  success.html: 
<div> 
<h1>Hello ${firstName} ${lastName}. Your details stored in our database.</h1> 
</div><br> 

  但如果F5的时候,会发现参数丢失,因为flash scope其实只支持redirect的,所以可以判断下: 
 
Java代码  收藏代码
  1. @RequestMapping(value="/success.html", method=RequestMethod.GET)  
  2.     public String successView(HttpServletRequest request){  
  3.         Map<String,?> map = RequestContextUtils.getInputFlashMap(request);   
  4.         if (map!=null)  
  5.            return "success";  
  6.         else return "redirect:someOtherView"//給出其他提示信息  
分享到:
评论

相关推荐

    spring学习: spring mvc在redirect请求中传递数据

    标题中的“spring学习:spring mvc在redirect请求中传递数据”指的是在Spring MVC框架中,如何在重定向(Redirect)请求过程中传递参数。这通常涉及到HTTP响应的状态码、重定向URL以及模型数据的处理。在Spring MVC...

    Spring MVC— 处理器(Handler)方法的返回值.docx

    在Spring MVC框架中,处理器(Handler)方法是处理用户请求的核心组件。这些方法通常定义在@Controller注解的类中,并通过@RequestMapping或其相关的注解来指定处理特定HTTP请求的路径。处理器方法的返回值非常关键...

    spring mvc controller间跳转 重定向 传参

    在 Spring MVC 框架中,controller 间跳转重定向传参是一个非常常见的需求。这里,我们将讨论三种常见的情况:不带参数跳转、带参数拼接 URL 形式跳转、带参数不拼接参数跳转。 一、不带参数跳转 在某些情况下,...

    spring mvc重定向导致内存溢出解决方案

    在Spring MVC框架中进行页面重定向操作时,可能会遇到因重定向导致的内存溢出问题。本文将详细介绍该问题的原因、原理以及解决方法。 #### 一、问题背景及原因分析 在Spring MVC中使用重定向功能时,可以通过`...

    s:mvcURL如何使用

    在Spring MVC 4.1.x框架中,`mvcURL`是一个关键的概念,它涉及到控制器(Controller)与视图(View)之间的交互。本篇将详细解释`mvcURL`的使用方法,以及它如何帮助我们构建高效、灵活的Web应用程序。 首先,`mvc...

    SpringMVC-5 视图和视图解析器

    在Spring MVC框架中,视图和视图解析器是核心组件,它们负责处理控制器返回的数据并将其呈现给用户。本文将深入探讨视图与视图解析器的工作原理、常用实现及自定义视图的实现方法,同时也会讲解重定向操作。 1. **...

    基于Springboot +activiti实现的一个前后端分离的企业级OA管理系统(源码+数据库)

    基于Springboot +activiti实现...&gt; 在Spring MVC中,被@RequestMapping注解的方法,可以接收 &gt; RedirectAttributes ra参数,通过ra.addFlashAttribute(key,value) &gt; 可以向模板文件中注册名称为key,值为value的对象。

    springmvc-demo07-响应(数据共享,页面跳转).zip

    3. **控制器方法**:Spring MVC通过`@RequestMapping`注解标识控制器方法,处理特定的HTTP请求。可以指定请求的URL、HTTP方法(GET、POST等)和其他参数来精确匹配请求。例如: ```java @RequestMapping(value = ...

    (代码)SpringMVC第6讲:请求转发和重定向

    - 在Spring MVC中,我们通常使用`DispatcherServlet`的`forward`方法或者`RequestDispatcher`对象来实现请求转发。例如,控制器方法中可以写入如下代码: ```java @RequestMapping("/forwardExample") public ...

    使用Springboot上传图片并将URL保存到数据库中

    import org.springframework.web.servlet.mvc.support.RedirectAttributes; public class UploadController { @PostMapping("/upload") public ResponseEntity&lt;?&gt; upload(@RequestParam("file") MultipartFile ...

    SpringBoot文件上传.zip

    在SpringBoot 2.x版本中,文件上传可以通过集成Spring MVC的MultipartResolver组件来实现,这使得处理文件上传变得非常简单。下面我们将详细探讨如何在SpringBoot项目中实现单文件和多文件的上传。 首先,为了实现...

    Spring RedirectAttributes参数跳转代码实例

    在Spring MVC框架中,RedirectAttributes是一个关键工具,它允许我们在处理完一个请求后进行重定向,并且能够携带参数。这个特性在3.1版本之后被引入,目的是为了更安全、更优雅地处理重定向时的数据传递。本文将...

    详解SpringMVC重定向传参数的实现

    在Spring MVC中,实现重定向可以通过`RedirectView`或在返回值中使用`redirect:`前缀。在提供的代码示例中,`DemoController`的`login`方法中,通过返回`"redirect:/home.jsp"`实现了重定向。这种方法简单直接,但...

    java 如何对网页进行重新定向

    总结来说,Java中实现网页重定向主要通过`HttpServletResponse`的`sendRedirect()`方法,而在Spring框架中则有更多高级的选项,如`RedirectView`和`RedirectAttributes`。理解并掌握这些方法,对于构建动态和交互性...

    springboot-fileUpload

    3. **处理上传逻辑**:在`handleFileUpload`方法中,我们需要检查文件是否有效,然后将其保存到服务器。可以使用`file.transferTo()`方法将文件保存到指定位置。同时,不要忘记处理可能出现的异常。 ```java try { ...

    springMVC教程

    `redirectAttributes.addFlashAttribute()` 可以将数据添加到 Flash 属性中,仅在一次重定向后可用。`modelAndView.setViewName("forward:/yourPage")` 或 `modelAndView.setViewName("redirect:/yourPage")` 分别...

    springboot集成上传下载

    import org.springframework.web.servlet.mvc.support.RedirectAttributes; import java.io.File; import java.io.IOException; @Controller public class FileController { @PostMapping("/upload") public ...

    springboot实现邮箱发送功能

    在Spring Boot应用中,实现邮件发送功能是一项常见的需求,它能够帮助我们自动化处理通知、确认订单、发送报告等任务。本案例重点讲解如何利用Spring Boot集成JavaMailSenderImpl类,结合QQ邮箱的设置来实现邮件的...

    SprignBoot中实现文件上传示例代码

    import org.springframework.web.servlet.mvc.support.RedirectAttributes; import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; @Controller public class FileUploadController { @...

Global site tag (gtag.js) - Google Analytics