Java 在Spring、Hibernate中访问用户数据

Java 在Spring、Hibernate中访问用户数据,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我做了这个教程: 而且它工作得很好。但我不明白什么。我向数据库中添加了一个新列。它被命名为全名。我用setter和getter方法完成了User类。但是,例如,我如何在管理页面中访问这些数据?如何打印出实际会话的用户名。比如:嗨,你的全名是 编辑:那么我如何才能访问登录用户的其他详细信息,比如全名、地址、性别和其他类似信息,而不仅仅是用户名和密码 编辑2:谢谢,现在更清楚了。我唯一的问题。他将自己的用户类转换为org.springframework.security.core.userdetai

我做了这个教程:

而且它工作得很好。但我不明白什么。我向数据库中添加了一个新列。它被命名为全名。我用setter和getter方法完成了User类。但是,例如,我如何在管理页面中访问这些数据?如何打印出实际会话的用户名。比如:嗨,你的全名是

编辑:那么我如何才能访问登录用户的其他详细信息,比如全名、地址、性别和其他类似信息,而不仅仅是用户名和密码


编辑2:谢谢,现在更清楚了。我唯一的问题。他将自己的用户类转换为org.springframework.security.core.userdetails.User。这个类没有全名的构造函数。所以我需要创建一个自己的UserDetails类来覆盖orginial。或者我需要做什么


伊迪丝3:对不起,我不明白。哪种服务方式?你能用这个例子给我看看吗。非常感谢。

您已经在控制器类
MainController
中添加了代码,该类代码在mkyong站点中提到的示例中给出

@RequestMapping(value = "/admin**", method = RequestMethod.GET)
public ModelAndView adminPage() {

    ModelAndView model = new ModelAndView();
    model.addObject("title", "Spring Security + Hibernate Example");
    model.addObject("message", "This page is for ROLE_ADMIN only!");
    model.setViewName("admin");

    String fullName = ...; // Add the required logic to get the full name.
    model.addObject("FullName", fullName); // Then add the fullName to your model object

    return model;

}
最后编辑
admin.jsp
文件以显示全名

更新:

mkyong链接中也提供了所需的代码。以下是取自同一页的片段:

java类具有功能所需的所有代码

List<User> users = new ArrayList<User>();

users = sessionFactory.getCurrentSession()
    .createQuery("from User where username=?")
    .setParameter(0, username)
    .list();

if (users.size() > 0) {
    return users.get(0);
} else {
    return null;
}
从上面的代码中可以看到,在第行创建了一个新的用户对象:

new User(user.getUsername(), user.getPassword(), user.isEnabled(), true, true, true, authorities);

请更新此行以包含全名,并在用户类中添加所需的构造函数。

谢谢,但我对所需的逻辑感兴趣,例如。@Roberto,您是否尝试理解mkyong站点中给出的示例?所有代码都在该示例中,只需添加很少的行即可添加全名。我更新了我的答案,详细介绍了你如何做到这一点。谢谢,现在更清楚了。我唯一的问题。他将自己的用户类转换为org.springframework.security.core.userdetails.User。这个类没有全名的构造函数。所以我需要创建一个自己的UserDetails类来覆盖orginial。或者我需要做什么?@Roberto,因为你想添加一个额外的字段,所以只要更新现有的构造函数并添加全名字段,就不需要再创建一个额外的类。好吧,也许我是个白痴。但是,如何向org.springframework.security.core.userdetails.User中的am现有构造函数添加参数?
new User(user.getUsername(), user.getPassword(), user.isEnabled(), true, true, true, authorities);