Spring MVC之SessionAttributes
@SessionAttributes注解用在处理类上,用于在多个请求之间传递参数,一般来说该注解设置的参数只用于暂时保存,而不是长期保存。像身份验证等需要长期保存的参数还是应该保存在Session#serAttribute中。
看以下例子:
@Controller
@RequestMapping("/session")
//条件1:在SessionAttributes设置需要传递的参数名 或类型
@SessionAttributes(value={"P1","P2"},types = Double.class)
public class SessionAttributeController {
/*
* @Description:
* @Date :2018年7月18日 19:20:32
*/
@RequestMapping("index")
public String index(Model model) {
//条件2:在处理器中将参数设置到model中
model.addAttribute("P1","111");
model.addAttribute("P2","222");
model.addAttribute("P3",11.222);
return "redirect:get";
}
@RequestMapping("get")
public String get(Model model, @ModelAttribute String P1, SessionStatus status) {
System.out.println("---------------------get........");
System.out.println(P1);
System.out.println(model.asMap());
status.setComplete();
return "redirect:complate";
}
@RequestMapping("complate")
public String complate(Model model, @ModelAttribute String P1, SessionStatus status) {
System.out.println("---------------------complate........");
System.out.println(P1);
System.out.println(model.asMap());
return "complate";
}
}