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

  • 相关阅读:
    CSS的margin塌陷
    css white-space
    float的理解
    html标签元素分类
    Sublime text3使用技巧及快捷键
    JSON
    js原生Ajax的封装与使用
    XMLHttpRequest基础知识
    HTTP的一些基础知识
    创建兼容的XHR对象
  • 原文地址:https://www.cnblogs.com/niutouzdq/p/4547172.html
Copyright © 2011-2022 走看看