日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring中RedirectAttributes对象重定向传参

發(fā)布時間:2023/12/20 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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对象重定向传参的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。