zoukankan      html  css  js  c++  java
  • spring mvc 重定向传参

    参考链接如下:

    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提交参数。

  • 相关阅读:
    python文件操作总结
    hidoCoder #1514 偶像的条件
    2017浙江省赛大学生程序设计竞赛 C题 What Kind of Friends Are You?
    51nod 1503 猪和回文串(动态规划)
    整数划分(若干不同),时间复杂度O(n*sqrt(n))
    Jiu Yuan Wants to Eat
    牛牛数括号
    P3254 圆桌问题
    方格取数(1)
    Taeyeon的困惑
  • 原文地址:https://www.cnblogs.com/niutouzdq/p/4547172.html
Copyright © 2011-2022 走看看