参考链接如下:
http://bbs.csdn.net/topics/391034118?page=1
自己的示例程序:
详细页面提交一个修改动作,修改完成后跳转到检索页面,把检索条件重新赋值给检索页面。
本地页面
<input type="hidden" name="startDate" value="${(requestDto.startDate)!""}"> <input type="hidden" name="endDate" value="${(requestDto.endDate)!""}">
本地controller
private static final String SEARCH_PAGE = "redirect:/list/search.do"; @RequestMapping(value = "/update", method=RequestMethod.POST) public String update(RequestDto requestDto,ModelMap modelMap,RedirectAttributes attr) { /*这段代码就不贴出来了*/ setRedirectParam(requestDto, attr); return SEARCH_PAGE; } private void setRedirectParam(RequestDto requestDto,RedirectAttributes attr){ attr.addAttribute("startDate", requestDto.getStartDate()); attr.addAttribute("endDate", requestDto.getEndDate()); }
检索页面
<input type="text" name="startDate" value="${(requestDto.startDate)!""}"> <input type="text" name="endDate" value="${(requestDto.endDate)!""}">
检索controller
1 @RequestMapping("/search") 2 public String search(RequestDto requestDto,DalPage pagination,ModelMap modelMap) { 3 4 }
据参考的帖子,参数传递除了attr.addAttribute();
还有一种方式:attr.addFlashAttribute();使用这个的时候一般用来传递处理结果。
本地页面同上
本地controller
private static final String SEARCH_PAGE = "redirect:/list/search.do"; @RequestMapping(value = "/update", method=RequestMethod.POST) public String update(RequestDto requestDto,ModelMap modelMap,RedirectAttributes attr) { /*这段代码就不贴出来了*/ setRedirectParam(requestDto, attr); return SEARCH_PAGE; } private void setRedirectParam(RequestDto requestDto,RedirectAttributes attr){ attr.addFlashAttribute("successCode", requestDto.getStartDate()); }
检索页面
<script type="text/javascript"> window.onload=function(){ if(""!="${(successCode)!""}"){ alert("${(successCode)!""}"); } } </script>
检索controller可以不用接参数。且可以通过如下形式查看
@RequestMapping("/search") public String search(HttpServletRequest httpRequest) { Map<String, ?> map=RequestContextUtils.getInputFlashMap(httpRequest); }
map里面存放的就是闪存的值。
然后就是混合使用
attr.addAttribute("startDate", requestDto.getStartDate()); attr.addAttribute("endDate", requestDto.getEndDate()); attr.addFlashAttribute("successCode", "3001");
这样做的话,页面那边是取不到闪存的值得,只能取到get提交参数。