zoukankan      html  css  js  c++  java
  • 24SpringMvc中的重定向和转发-解释return "redirect:/cargo/contractproduct/tocreate.action";

    我在做JK项目时发现:我们在增加一个货物时。会先根据提交的Action()进入到一个新增页面

        //跳转到新增的页面
        @RequestMapping("/cargo/contractproduct/tocreate.action")
        public String tocreate(String contractId,Model model)
        {
            List<Factory> listfactory=factoryService.getFactoryList();
            Map<String, Object> map=new HashMap<String, Object>();
            map.put("contractId",contractId);
            List<ContractProduct> datalist=contractProductService.find(map);
            model.addAttribute("contractId", contractId);
            model.addAttribute("listfactory", listfactory);
            model.addAttribute("datalist", datalist);
            return "/cargo/contract/jContractProductCreate.jsp";//调到新增页面
        }

    ,填好信息时,根据insert.action来到

        //新增保存数据
        @RequestMapping("/cargo/contractproduct/insert.action")
        public String insert(ContractProduct contractProduct,Model model)
        {
            contractProductService.insert(contractProduct);
            model.addAttribute("contractId", contractProduct.getContractid());
            //重新回到新增的页面。为什么这么做呢?因为我们在录入货物的信息时不可能是只录入了一个
            //肯定是录入了很多个的。所以要重新跳转到新增的页面。
            return "redirect:/cargo/contractproduct/tocreate.action";
            
        }

    但是在这个方法中,会有这么return "redirect:/cargo/contractproduct/tocreate.action";这是Springmvc中的重定向。

    为什么要重定向呢?为了防止表单的重复提交。有一篇博客里面提到:

    当用户提交post请求之后,点击浏览器的后退按钮,然后刷新页面就会造成数据的再一次提交,也就是常说的重复提交,看到有人在说struts的令牌方式,怎奈我比较愚钝,不能理解其中精妙,简单的利用重定向来防止重复提交数据。重定向即服务器端提供一个请求方向后,将请求返回给用户在按指定的请求方向请求一次,在spring mvc的开发中,返回一个重定向试图只需要在试图名称前加上“redirect:”前缀,当然你必须提供重定向后的视图访问路径,这样才不至于重定向后找不到请求路径。

  • 相关阅读:
    luogu3810 【模板】三维偏序(陌上花开)
    POJ 1704 Georgia and Bob(阶梯博弈)
    URAL 1004 Sightseeing Trip(floyd求最小环+路径输出)
    BZOJ 1064: [Noi2008]假面舞会(dfs + 图论好题!)
    Codeforces Round #332 (Div. 2) D. Spongebob and Squares(枚举)
    HDU 4313 Matrix(并查集)
    HDU 4312 Meeting point-2(切比雪夫距离转曼哈顿距离)
    HDU 4311 Meeting point-1(曼哈顿距离最小)
    HDU 4309 Seikimatsu Occult Tonneru(最大流+二进制枚举)
    HDU 4303 Hourai Jeweled(树形DP)
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/5936160.html
Copyright © 2011-2022 走看看