springmvc redirect传值

在使用springmvc redirect传值的过程中,需要传递数据,首先用的是flashAttribute,但是传递过去后刷新页面数据就丢失了;然后用@SessionAttributes,并在处理方法中用model.addAttribute,将数据加入到session中,但是这样做有个小问题,在redirect过程中,使用model.addAttribute加入的属性会以查询参数的方式加到地址上,看着有点难受;

@Controller
@SessionAttributes("phone")
public class LoginController {
    @RequestMapping(value = {"/helperlogin"}, method = RequestMethod.POST)
    public String helperLogin(String phone, Model model) {             
            model.addAttribute("phone",phone); 
            return "redirect:/helper/neworder";
    }

地址栏变为:http://localhost:8080/helper/neworder?phone=3124124

最后找到了一种方式,在redirect是将数据通过flashAttribute传递,然后在新的控制器上用@SessionAttribute将该数据加入到session中。如果在flashAttribute的控制器上加上@SessionAttribute,重定向刷新后,数据还是丢失了,在新的控制器上用@SessionAttribute数据就不会丢失,应该是flashAttribute在取值的时候触发了model.addAttribute方法。

你可能感兴趣的:(spring学习,springmvc,redirect)