Я хочу сгенерировать объект User, используя шаблон Thymeleaf. Как я могу это сделать? У меня есть класс User, содержащий следующую информацию.
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
}
У меня есть класс 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);
}
Теперь я хочу создать объект User из тимилиста, используя метод findByUsername (String username) класса UserService. Я хочу получить информацию о текущем вошедшем в систему пользователе от этого.
Поскольку я использую SpringSecurity5. В настоящее время я могу войти в систему как пользователь с thymeleaf, как показано ниже.
<span th:text="${#authentication.getPrincipal().getUsername()}"></span>
Я хочу передать это имя пользователя моим методам и получить объект User. Не только зарегистрированный в данный момент пользователь. Мне нужно получить объект User других пользователей в системе.
Я знаю несколько способов сделать это, как показано ниже.
- Установка значений текущего пользователя, вошедшего в систему, в cookieи извлеките его из пользовательского интерфейса.
- Установка значений текущего пользователя, вошедшего в систему в сеансе, и извлечение из пользовательского интерфейса.
- Установка объекта User в атрибут модели, а затем использование объекта из пользовательского интерфейса.
Используя вышеперечисленные способы, Моя цель решается. Но я хочу установить объект из тимьяна. Как я могу это сделать?
Я пытался с помощью th: with of thimeleaf. Это не сработало для меня
<div th:if="${userCredentials == null}" th:with="userCredentials=${T(your.package.here.UserCredentials).create()}"></div>
Сообщение для приведенной выше строки кода: здесь
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Также сообщите мне код, если я здесь что-то не так делаю.