當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring中RedirectAttributes对象重定向传参
生活随笔
收集整理的這篇文章主要介紹了
Spring中RedirectAttributes对象重定向传参
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Spring3中的FlashAttribute
為 了防止用戶刷新重復提交,save操作之后一般會redirect到另一個頁面,同時帶點操作成功的提示信息。因為是Redirect,Request里 的attribute不會傳遞過去,如果放在session中,則需要在顯示后及時清理,不然下面每一頁都帶著這個信息也不對。Spring在3.1才提 供了這個能力。
記得在spring mvc2中,當保存POJO到數(shù)據(jù)庫后,要返回成功頁面,如果這個時候要帶點信息, 則要這樣:
//第三個參數(shù)(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,參數(shù)不會出現(xiàn)在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的時候,會發(fā)現(xiàn)參數(shù)丟失,因為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"; //給出其他提示信息?
轉載于:https://www.cnblogs.com/longshiyVip/p/5288270.html
總結
以上是生活随笔為你收集整理的Spring中RedirectAttributes对象重定向传参的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电信机顶盒怎么连接鸿蒙系统电视,移动电信
- 下一篇: gradle idea java ssm