您的位置:首页 > 编程语言 > Java开发

spring mvc 重定向传参

2015-06-02 17:55 495 查看
参考链接如下:
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

@RequestMapping("/search")
public String search(RequestDto requestDto,DalPage pagination,ModelMap modelMap) {

}


据参考的帖子,参数传递除了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提交参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: