在spring mvc2中,当保存POJO到数据库后,要返回成功页面,如果这个时候要带点信息,
则要这样:
而在spring mvc 3.1后,可以这样
来个稍微完整点的例子,首先是一个表单,在其中填入一些信息:
则在controller中,可以这样:
success.html:
<div>
<h1>Hello ${firstName} ${lastName}. Your details stored in our database.</h1>
</div><br>
但如果F5的时候,会发现参数丢失,因为flash scope其实只支持redirect的,所以可以判断下:
则要这样:
- //第三个参数(UserModel user)默认为绑定对象
- @RequestMapping(value = "/user/save", method = RequestMethod.POST)
- public ModelAndView saveUser(HttpServletRequest request, HttpServletResponse response,UserModel user) throws Exception {
- ModelAndView mv = new ModelAndView("/user/save/result");//默认为forward模式
- // ModelAndView mv = new ModelAndView("redirect:/user/save/result");//redirect模式
- mv.addObject("message","保存用户成功!");
- return mv;
- }
而在spring mvc 3.1后,可以这样
- @RequestMapping(value = "/user/save", method = RequestMethod.POST)
- public ModelAndView saveUser(UserModel user, RedirectAttributes redirectAttributes) throws Exception {
- redirectAttributes.addFlashAttribute("message", "保存用户成功!");//使用addFlashAttribute,参数不会出现在url地址栏中
- return "redirect:/user/save/result";
- }
来个稍微完整点的例子,首先是一个表单,在其中填入一些信息:
- <form:form id="myform" action="saveUserDetails.action" method="POST" commandName="user">
- <form:input type="text" name="firstName" path="firstName"/>
- <form:input type="text" name="lastName" path="lastName"/>
- <form:input type="text" name="email" path="email"/>
- <input type="submit" value="submit">
- </form:form>
则在controller中,可以这样:
- @RequestMapping(value="/saveUserDetails.action", method=RequestMethod.POST)
- public String greetingsAction(@Validated User user,RedirectAttributes redirectAttributes){
- someUserdetailsService.save(user);
- redirectAttributes.addFlashAttribute("firstName", user.getFirstName());
- redirectAttributes.addFlashAttribute("lastName", user.getLastName())
- return "redirect:success.html";
- }
success.html:
<div>
<h1>Hello ${firstName} ${lastName}. Your details stored in our database.</h1>
</div><br>
但如果F5的时候,会发现参数丢失,因为flash scope其实只支持redirect的,所以可以判断下:
- @RequestMapping(value="/success.html", method=RequestMethod.GET)
- public String successView(HttpServletRequest request){
- Map<String,?> map = RequestContextUtils.getInputFlashMap(request);
- if (map!=null)
- return "success";
- else return "redirect:someOtherView"; //給出其他提示信息
相关推荐
标题中的“spring学习:spring mvc在redirect请求中传递数据”指的是在Spring MVC框架中,如何在重定向(Redirect)请求过程中传递参数。这通常涉及到HTTP响应的状态码、重定向URL以及模型数据的处理。在Spring MVC...
在Spring MVC框架中,处理器(Handler)方法是处理用户请求的核心组件。这些方法通常定义在@Controller注解的类中,并通过@RequestMapping或其相关的注解来指定处理特定HTTP请求的路径。处理器方法的返回值非常关键...
在 Spring MVC 框架中,controller 间跳转重定向传参是一个非常常见的需求。这里,我们将讨论三种常见的情况:不带参数跳转、带参数拼接 URL 形式跳转、带参数不拼接参数跳转。 一、不带参数跳转 在某些情况下,...
在Spring MVC框架中进行页面重定向操作时,可能会遇到因重定向导致的内存溢出问题。本文将详细介绍该问题的原因、原理以及解决方法。 #### 一、问题背景及原因分析 在Spring MVC中使用重定向功能时,可以通过`...
在Spring MVC 4.1.x框架中,`mvcURL`是一个关键的概念,它涉及到控制器(Controller)与视图(View)之间的交互。本篇将详细解释`mvcURL`的使用方法,以及它如何帮助我们构建高效、灵活的Web应用程序。 首先,`mvc...
在Spring MVC框架中,视图和视图解析器是核心组件,它们负责处理控制器返回的数据并将其呈现给用户。本文将深入探讨视图与视图解析器的工作原理、常用实现及自定义视图的实现方法,同时也会讲解重定向操作。 1. **...
基于Springboot +activiti实现...> 在Spring MVC中,被@RequestMapping注解的方法,可以接收 > RedirectAttributes ra参数,通过ra.addFlashAttribute(key,value) > 可以向模板文件中注册名称为key,值为value的对象。
3. **控制器方法**:Spring MVC通过`@RequestMapping`注解标识控制器方法,处理特定的HTTP请求。可以指定请求的URL、HTTP方法(GET、POST等)和其他参数来精确匹配请求。例如: ```java @RequestMapping(value = ...
- 在Spring MVC中,我们通常使用`DispatcherServlet`的`forward`方法或者`RequestDispatcher`对象来实现请求转发。例如,控制器方法中可以写入如下代码: ```java @RequestMapping("/forwardExample") public ...
import org.springframework.web.servlet.mvc.support.RedirectAttributes; public class UploadController { @PostMapping("/upload") public ResponseEntity<?> upload(@RequestParam("file") MultipartFile ...
在SpringBoot 2.x版本中,文件上传可以通过集成Spring MVC的MultipartResolver组件来实现,这使得处理文件上传变得非常简单。下面我们将详细探讨如何在SpringBoot项目中实现单文件和多文件的上传。 首先,为了实现...
在Spring MVC框架中,RedirectAttributes是一个关键工具,它允许我们在处理完一个请求后进行重定向,并且能够携带参数。这个特性在3.1版本之后被引入,目的是为了更安全、更优雅地处理重定向时的数据传递。本文将...
在Spring MVC中,实现重定向可以通过`RedirectView`或在返回值中使用`redirect:`前缀。在提供的代码示例中,`DemoController`的`login`方法中,通过返回`"redirect:/home.jsp"`实现了重定向。这种方法简单直接,但...
总结来说,Java中实现网页重定向主要通过`HttpServletResponse`的`sendRedirect()`方法,而在Spring框架中则有更多高级的选项,如`RedirectView`和`RedirectAttributes`。理解并掌握这些方法,对于构建动态和交互性...
3. **处理上传逻辑**:在`handleFileUpload`方法中,我们需要检查文件是否有效,然后将其保存到服务器。可以使用`file.transferTo()`方法将文件保存到指定位置。同时,不要忘记处理可能出现的异常。 ```java try { ...
`redirectAttributes.addFlashAttribute()` 可以将数据添加到 Flash 属性中,仅在一次重定向后可用。`modelAndView.setViewName("forward:/yourPage")` 或 `modelAndView.setViewName("redirect:/yourPage")` 分别...
import org.springframework.web.servlet.mvc.support.RedirectAttributes; import java.io.File; import java.io.IOException; @Controller public class FileController { @PostMapping("/upload") public ...
在Spring Boot应用中,实现邮件发送功能是一项常见的需求,它能够帮助我们自动化处理通知、确认订单、发送报告等任务。本案例重点讲解如何利用Spring Boot集成JavaMailSenderImpl类,结合QQ邮箱的设置来实现邮件的...
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 { @...