Форма Thymeleaf возвращает NULL во вложенных списках - PullRequest
0 голосов
/ 13 сентября 2018

Я построил форму в тимелисте на основе Java List-Object, который содержит Pojo-Objects, который снова содержит несколько List-Objects. Теперь я читаю здесь , что списки должны быть обернуты, чтобы правильно обрабатываться thymeleaf / springEL. Поэтому я создал класс-обертку для внешнего списка, который отлично работает. Вложенные списки, однако, отображаются корректно, но никогда не передаются, они возвращаются как нулевые.

Pojo выглядит примерно так:

public class Text {

private String textId;
private String type;

private List<String> linesDe;
private List<String> linesEn;

// getters and setters
}

Wrapper:

public class TextListWrapper {
private List<Text> textList;

// getters and setters
}

И следуя шаблону / форме:

<form method="post" th:object="${listwrapper}">
<table>
    <thead>
        <tr>
            <th>Text Id</th>
            <th>Type</th>
            <th>English</th>
            <th>German</th>
        </tr>
    </thead>
    <tbody>
        <th:block th:each="text, iter : *{textList}">
        <tr>
            <td><input type="text" th:field="*{textList[__${iter.index}__].textId}" /></td>
            <td><input th:field="*{textList[__${iter.index}__].type}" /></td>
            <td>
                <th:block th:each="lineEn, line : *{textList[__${iter.index}__].getLinesEn()}">
                    <input type="text" th:field="*{textList[__${iter.index}__].linesEn[__${line.index}__]}" /><br />
                </th:block>
            </td>
            <td>
                <th:block th:each="lineEn, line : *{textList[__${iter.index}__].getLinesEn()}">
                    <input type="text" th:field="*{textList[__${iter.index}__].linesDe[__${line.index}__]}" /><br />
                </th:block>
            </td>
            </tr>
        </th:block>
    </tbody>
</table>
<button type="submit">Do something</button>

Как видите, для списков, содержащихся в Text-Pojo, есть вложенные циклы. Форма отображается правильно, все тексты присутствуют. Когда я отправляю форму, простые поля listWrapper s отправляются, только содержащиеся в них списки linesEn и linesDe всегда равны нулю. Может кто-нибудь объяснить, почему это не работает, и дать мне понять, что мне придется изменить?

Я действительно не могу понять, как заставить это работать. Что действительно заставляет меня задуматься, так это то, почему списки отображаются, но не могут быть представлены таким образом. Любая помощь очень ценится.

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