@SessionAttributes和@ModelAttribute的用法

大家都知道Session是会话Cookic, 一般会用在登录时, 共享已经登录用户的信息, 那么既然用Session,就必定要从中取数据,平时我们取数据的方式如下:

public void testSession(HttpSession session) {
        AgentUserDO agentUserDO = (AgentUserDO)session.getAttribute("session_admin");
        System.out.println("获取到Session中的AgentUserDO对象!" + agentUserDO);
    }

今天为大家推荐一种注解的方式, 使用@SessionAttributes和@ModelAttribute两个注解:

(注 : 该方式只适用于redis中共享session的情况, 关于redis共享session, 请查看https://blog.csdn.net/luan666/article/details/80420851)

@SessionAttributes("session_admin")
public class TestController {

    public void testSession2(@ModelAttribute("session_admin") AgentUserDO agentUserDO) {
        System.out.println("获取AgentUserDO对象" + agentUserDO);
    }

}

在Controller上加@SessionAttributes注解,并指定从Session中要获取的内容,则在改Controller中的任何方法上都可以获取;如 :

@SessionAttributes("session_admin")

获取 : 在方法上使用@ModelAttribute注解, 指定从Session中要获取的内容, 并且后面加上类型, 如:

@ModelAttribute("session_admin") AgentUserDO agentUserDO
如有不足之处, 欢迎各位朋友评论留言!!!

你可能感兴趣的:(技术总结)