Thymeleaf: распечатать набор в шаблоне - PullRequest
0 голосов
/ 26 августа 2018

У меня есть базовое приложение SpringBoot 2.0.4.RELEASE.используя Spring Initializer, JPA, встроенный Tomcat, шаблонизатор Thymeleaf и пакет в качестве исполняемого файла JAR.

У меня есть эта сущность:

@Entity
@Table(name="t_user")
public class User implements Serializable, UserDetails {

 @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JsonIgnore
    private Set<UserRole> userRoles = new HashSet<>();

public Set<UserRole> getUserRoles() {
        return userRoles;
    }

    public void setUserRoles(Set<UserRole> userRoles) {
        this.userRoles = userRoles;
    }
}

и эта:

@Entity
@Table(name = "t_user_role")
public class UserRole implements Serializable {

    /** The Serial Version UID for Serializable classes. */
    private static final long serialVersionUID = 1L;

    public UserRole() {

    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    public UserRole(User user, Role role) {
        this.user = user;
        this.role = role;
    }


    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "user_id")
    private User user;


    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "role_id")
    private Role role;
...
}

и хочу напечатать все роли пользователя, поэтому я использую этот код:

 <td class="col_name"   th:text="${user.userRoles.role}"></td><!-- ROLES -->

, но в браузере я вижу буквально следующее:

com.tdk.backend.persistence.domain.backend.User.userRoles

1 Ответ

0 голосов
/ 27 августа 2018

Вы захотите перебрать набор объектов для вывода значений role. Вы можете использовать синтаксис Thymeleaf th:each для этого:

<td class="col_name">
    <span th:each="userRole : ${user.userRoles}" th:text="${userRole.role}">[role]</span><!-- format with line breaks as needed -->
</td>

Вы также можете посмотреть на утилиту lists и вызвать toString() для быстрого и грязного вывода:

<td class="col_name">
    <span th:text="${#lists.toString(user.userRole.role)}">[role]</span>
</td>

При желании вы можете удалить теги <span>, используя th:remove="tag".

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