Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Thymeleaf获取对象_Java_Spring Boot_Spring Security_Spring Data Jpa_Thymeleaf - Fatal编程技术网

Java 如何使用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

我想使用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 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>
  • 在cookie中设置当前登录用户的值,并从UI获取该值
  • 设置会话中当前登录用户的值并从UI获取
  • 将用户对象设置为model属性,然后使用UI中的对象
  • 使用以上方法,我的目的是得到解决。但我想从thymeleaf设置对象。我怎么做

    我试过用th:with the thymeleaf。这对我不起作用

    <div th:if="${userCredentials == null}" th:with="userCredentials=${T(your.package.here.UserCredentials).create()}"></div>
    
    
    
    以上代码行的帖子是


    如果需要更多信息,请告诉我。如果我在这里做错了什么,请用代码指导我。

    如果我正确理解了您的问题,您是否查看了
    UserDetailsService.loadUserByUsername
    ?这就是Spring管理查找用户的基本方式。