Как получить объект с помощью Thymeleaf - PullRequest
3 голосов
/ 02 октября 2019

Я хочу сгенерировать объект 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 других пользователей в системе.

Я знаю несколько способов сделать это, как показано ниже.

  1. Установка значений текущего пользователя, вошедшего в систему, в cookieи извлеките его из пользовательского интерфейса.
  2. Установка значений текущего пользователя, вошедшего в систему в сеансе, и извлечение из пользовательского интерфейса.
  3. Установка объекта User в атрибут модели, а затем использование объекта из пользовательского интерфейса.

Используя вышеперечисленные способы, Моя цель решается. Но я хочу установить объект из тимьяна. Как я могу это сделать?

Я пытался с помощью th: with of thimeleaf. Это не сработало для меня

<div th:if="${userCredentials == null}" th:with="userCredentials=${T(your.package.here.UserCredentials).create()}"></div>

Сообщение для приведенной выше строки кода: здесь

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Также сообщите мне код, если я здесь что-то не так делаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...