- package edu.nf.ch06.controller;
- import edu.nf.ch06.entity.Users;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.servlet.mvc.support.RedirectAttributes;
- /**
- * @author wangl
- * @date 2018/10/31
- * 使用RedirectAttributes解决重定向传参的问题
- * 这个对象是在Springmvc 3.1的版本加入的
- */
- @Controller
- public class RedirectAttributesController {
- /**
- * 重定向一个JSP页面,使用addAttribute的方式
- * 将参数绑定在重定向的url后面带回到页面
- * @param user
- * @param redirectAttributes
- * @return
- */
- @PostMapping("/redirect3")
- public String redirectPage(Users user, RedirectAttributes redirectAttributes){
- redirectAttributes.addAttribute("user", user.getUserName());
- return "redirect:redirectattr.jsp";
- }
- /**
- * 重定向一个新的请求,使用FlushAttribute的方式,
- * 将数据存入一个FlushMap中,它利用了Session的机制保存,
- * 在重定向完成之后会自动清除这个对象
- *
- * @param user
- * @param redirectAttributes
- * @return
- */
- @PostMapping("/redirect4")
- public String redirectReq(@ModelAttribute("user") Users user, RedirectAttributes redirectAttributes){
- redirectAttributes.addFlashAttribute("user", user);
- return "redirect:redirectAction";
- }
- /**
- * 从redirect4的请求重定向到这个方法
- * @param user
- * @return
- */
- @GetMapping("/redirectAction")
- public String getRedirectAttr(@ModelAttribute("user") Users user){
- System.out.println(user.getUserName());
- return "index";
- }
- }