java - Spring登录用户信息检索

标签 java spring jsp spring-mvc spring-security

我正在创建一个基本的 Spring Web 应用程序,其中涉及用户登录并进入其个人仪表板。当通过 Controller 实例化“登录”url 时,我使用了默认的 Spring Security 登录表单。我想知道的是,如何从数据库中检索刚刚登录的用户个人帐户信息? 这是实例化登录 URL 时 Controller 类中的内容

@RequestMapping("dashboard")
public String goDashboard(Model model){
    model.addAttribute("user", new User());
    return "dashboard"; // this is just returning the viewResolver JSP page
}

我假设上面的内容是不正确的,因为我个人认为创建一个新对象是错误的并且会给我空值。当我登录并尝试使用: <c:out value="${user.username}" /> 显示时没有显示任何内容。

最佳答案

或者您可以将其放入 Controller 中:

@RequestMapping("dashboard")
public String goDashboard(Model model, Principal principal){
    model.addAttribute("username", principal.getName());
    return "dashboard"; 
}

这种方法将帮助您将业务逻辑保留在 Controller 中(关注点分离)。

编辑。传递用户详细信息对象:

@RequestMapping("dashboard")
public String goDashboard(Model model, Principal principal){
    UserDetails userDetails = (UserDetails)((Authentication)principal).getPrincipal()
    model.addAttribute("userDetails", userDetails);
    return "dashboard"; 
}

关于java - Spring登录用户信息检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18764221/

相关文章:

java - 在 Java 2D 中创建复合形状

java - Android Studio gradle(错误 :Failed to resolve: com. android.support.constraint:constraint-layout-so)

java - 如何从 HibernateTransactionManager 获取事务状态

java - JSP、Java 和数据库。如果尝试登录时提交了错误的数据,如何再次调用同一个index.jsp?

Spring MVC 3 JSTL 不会在 Tomcat 5.5 中输出值

java - 安卓 : Get Phone Resolution using JAVA

java - FXML、脚本标签和初始化方法

java - 如何通过jsp将用户重定向到新的html页面?

java - 微服务通信

javascript - 为什么忽略表格指定的水平尺寸?