Java 如何使用Thymeleaf获取对象
我想使用Thymeleaf模板生成用户对象。我该怎么做?我有一个用户类,包含如下信息Java 如何使用Thymeleaf获取对象,java,spring-boot,spring-security,spring-data-jpa,thymeleaf,Java,Spring Boot,Spring Security,Spring Data Jpa,Thymeleaf,我想使用Thymeleaf模板生成用户对象。我该怎么做?我有一个用户类,包含如下信息 package com.rhv.um.model; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import ja
package com.rhv.um.model;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "firstname")
private String firstName;
@Column(name = "lastname")
private String lastName;
@Column(name = "email")
private String email;
@Column(name = "mobile")
private Long mobile;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Transient
private String confirmPassword;
@Column(name = "isenable", columnDefinition = "boolean default 1")
private boolean isEnable;
@Column(name = "reason")
private String reason;
@ManyToMany
@JoinTable(name = "users_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "roles_id"))
private Set<Role> roles;
//Getter and Setter
}
package com.rhv.um.model;
导入java.util.Set;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.GeneratedValue;
导入javax.persistence.GenerationType;
导入javax.persistence.Id;
导入javax.persistence.JoinColumn;
导入javax.persistence.JoinTable;
导入javax.persistence.ManyToMany;
导入javax.persistence.Table;
导入javax.persistence.Transient;
@实体
@表(name=“users”)
公共类用户{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
@列(name=“firstname”)
私有字符串名;
@列(name=“lastname”)
私有字符串lastName;
@列(name=“email”)
私人字符串电子邮件;
@列(name=“mobile”)
私人长途移动电话;
@列(name=“username”)
私有字符串用户名;
@列(name=“password”)
私有字符串密码;
@短暂的
私有字符串确认密码;
@列(name=“isenable”,columnDefinition=“布尔默认值1”)
私有布尔值是不可接受的;
@列(name=“reason”)
私有字符串原因;
@许多
@JoinTable(name=“users\u roles”,joinColumns=@JoinColumn(name=“user\u id”),inverseJoinColumns=@JoinColumn(name=“roles\u id”))
私人设定角色;
//接二连三
}
我还有一个UserRepository类和UserService类。UserService类如下所示。UserRepository类与UserService类相同
package com.rhv.um.service;
import java.util.List;
import com.rhv.um.model.User;
public interface UserService {
void save(User user, boolean updatePassword);
List<User> findAll();
User findByUsername(String username);
}
package com.rhv.um.service;
导入java.util.List;
导入com.rhv.um.model.User;
公共接口用户服务{
作废保存(用户,布尔更新密码);
列出findAll();
用户findByUsername(字符串用户名);
}
现在,我想使用UserService类的findByUsername(字符串用户名)方法从thymeleaf创建一个User对象。我想从中获取当前登录用户的详细信息
因为我正在使用SpringSecurity5。我可以从thymeleaf获得当前登录的用户,如下所示
<span th:text="${#authentication.getPrincipal().getUsername()}"></span>
我想将此用户名传递给我的方法并获取用户对象。不仅是当前登录的用户。我确实需要获取系统中其他用户的用户对象
我知道以下几种方法
<span th:text="${#authentication.getPrincipal().getUsername()}"></span>
<div th:if="${userCredentials == null}" th:with="userCredentials=${T(your.package.here.UserCredentials).create()}"></div>
以上代码行的帖子是
如果需要更多信息,请告诉我。如果我在这里做错了什么,请用代码指导我。如果我正确理解了您的问题,您是否查看了
UserDetailsService.loadUserByUsername
?这就是Spring管理查找用户的基本方式。