Spring MVC之SessionAttributes

@SessionAttributes注解用在处理类上,用于在多个请求之间传递参数,一般来说该注解设置的参数只用于暂时保存,而不是长期保存。像身份验证等需要长期保存的参数还是应该保存在Session#serAttribute中。

Spring MVC之SessionAttributes

看以下例子:

@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";
    }

}

 

Spring MVC之SessionAttributes