传值和接值 Spring MVC contorller跳转到另一个controller并传值示例均从createOrderForOld跳转到createOrder 1: forward 请求转发@RequestMapping(value ="/createOrderForOld")public String createOrder(HttpServletRequest re
Spring MVC contorller跳转到另一个controller并传值 示例均从createOrderForOld跳转到createOrder 1: forward 请求转发 @RequestMapping(value ="/createOrderForOld") public String createOrder(HttpServletRequest request,ModelMapmodel) { return"forward:/createOrder"; } @RequestMapping(value ="/createOrder") public String createOrder(String oderId,String orderName,ModelMap model) { return"index; } forward跳转,是请求转发,参数自动跳转,所以当http://localhost:8080/my-app/createOrderForOld?orderId=123 该链接请求createOrderForOld接口后 请求转发到createOrder接口时,参数自动带过来了,createOrder中oderId自动赋值为“123”,参数名称需一致,否则无法传参赋值。 2: redirect 重定向 @RequestMapping(value ="/createOrderForOld") public String createOrder(HttpServletRequest request,ModelMap model) { model.put("orderName","newOld"); return"redirect:/createOrder?orderId=123"; } @RequestMapping(value ="/createOrder") public String createOrder(String oderId,String orderName,ModelMap model) { return"index"; } 当请求http://localhost:8080/my-app/createOrderForOld 链接请求createOrderForOld接口后 请求重定向到createOrder接口时,通过model.put方法 ,createOrder中oderName自动赋值为“newOld”,通过参数拼接orderId自动赋值为“123”。 故redirect跳转到另一个controller是通过model还是拼接url均可。参数名称需一致,否则无法传参赋值。 RedirectAttributes和ModelMap或Model不推荐一起使用,因为在redirect传值时,同时存在,只有RedirectAttributes中参数值被传递,ModelMap或Model中变量不会传递。