Вот что я бы сделал.Поскольку мы не можем добавить условные выражения внутри th:object
, то единственный другой способ добиться этого - использовать th:block
с th:if
.Конечно, это будет означать, что вам нужны входные данные вашей формы в шаблоне, в противном случае вам придется дублировать код.Конечно, я предполагаю, что loginInfo.account имеет те же поля, что и account.
Во-первых, давайте создадим наш шаблон в нашей папке раскладок.В этом примере этот HTML-файл будет называться form-inputs
.
<th:block th:fragment="form-inputs">
<input th:field="*{phoneNumber}"/>
</th:block>
Теперь на странице будет следующий код, чтобы решить, какой объект использовать.Если loginInfo
не равно нулю, мы будем использовать его учетную информацию, в противном случае мы будем использовать account
.
<th:block th:if="${loginInfo!=null}">
<form th:action="@{register}" th:object="${loginInfo.account}" method="post">
<section th:replace="layouts/form-inputs :: form-inputs" th:remove="tag">
</section>
</form>
</th:block>
<th:block th:if="${loginInfo == null}">
<form th:action="@{register}" th:object="${account}" method="post">
<section th:replace="layouts/form-inputs :: form-inputs" th:remove="tag">
</section>
</form>
</th:block>
Надеюсь, это поможет вам!