springboot Thymeleaf добавляет различные поля списка - PullRequest
0 голосов
/ 25 января 2020

Я использую Thymeleaf для генерации файла html для некоторых целей обмена контентом.

Ниже приведен шаблон html

    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>Testing</title>
</head>
<body>
    <table>
        <tbody>
            <tr>
                <td>Message: </td>
                <td><p th:text="|${Id}|"> Id</p></td>
                <td><  th:text="|${userDetails}|"> </td>


            </tr>
        </tbody>
    </table>
</body>
</html>

, а ниже приведен код, который я пытался сгенерировать другим html таблицы или абзац

<code>   private static final String starttag= "<p><b>$$</b></p>";
    private static final String pretag= "<pre<$$
"; publi c Сборка строк (модель сообщения) {Context context = new Context (); context.setVariable (" Id ", model.getId ()); Список users = model.getUsers (); StringBuilder userDetails = new StringBuilder (""); для (пользователь: пользователи) {String getDepartment = starttag.replace ("$$", user.getDepartment ()); userInfo = userInfo + pretag .replace ("$$", "Name:" + user.getName ()); userDetails.append (userInfo);} context.setVariable ("userDetails", userDetails); вернуть templateEngine.process ("userTemplate", context) ;}}

но я получаю результат, как показано ниже

<td><p>123 Id</p></td>
                <td> &lt;p&gt;&lt;b&gt;Computer Science &lt;/b&gt;&lt;/p&gt; Name:testuser1&lt;pre&lt;&lt;/pre&gt;</span> </td>

Как добавить переменный список пользователей в html

Я хочу, как показано ниже

Testuser1

Информатика

Testuser2

Ele ctrical

1 Ответ

2 голосов
/ 25 января 2020

Вы можете напрямую передать объект user в шаблон:

public String build(Message model) {
        model.setAttribute("Id", model.getId());

        List<user> users = model.getUsers();
        model.setAttribute("users", users);

        return "userTemplate";
    }

Затем получить доступ к полю в шаблоне с помощью a для l oop:

<tr th:each="user: ${users}">
    <td th:text="${user.department}" />
    <td th:text="${user.name}" />
</tr>

This простая строка, вы можете настроить ее с помощью собственного html, добавив его в шаблон. Дело в том, что вам не нужно управлять кодом html в классе контроллера, вам нужно только подготовить модель. В коде html вы определяете свой шаблон.
Вы можете получить дополнительную информацию по этой статье о Baeldung , примеру по этому вопросу по SO , а также this вопрос (это не ваша проблема, но может помочь вам разобраться :)).
Если недостаточно ясно, пожалуйста, прокомментируйте ответ, и я постараюсь добавить некоторые детали.

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