Правильный способ обработки 'null' в форме 'select' - PullRequest
0 голосов
/ 10 июня 2019

У меня проблема с обработкой null значения в форме select и возвращением правильного сообщения, что это значение не может быть null.

Мое представление (часть формы):

<label>Producer:</label>
<select class="form-control" th:field="*{producer.id}" th:errorclass="has-error">
    <option value="0">Select producer</option>
    <option th:each="producer : ${producers}"
        th:value="${producer?.id}"
        th:text="${producer?.producerName}">
    </option>
</select>
<span th:if="${#fields.hasErrors('producer')}">
    <ul>
        <li th:each="err : ${#fields.errors('producer')}" th:text="${'- ' + err}"/>
    </ul>
</span>

Часть контроллера солода:

@NotNull
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="producer_id")
private Producer producer;

Пружина (или тимелист?) Требует value, поэтому я установил ее на 0 - это отношение ManyToMany, и значениявзято из базы данных - нет 0, поэтому выдается ошибка:

org.thymeleaf.exceptions.TemplateProcessingException: Attribute "value" is required in "option" tags (template: "malt/createOrUpdateMaltForm" - line 55, col 9)             

Я пробовал несколько разных подходов, но не могу вернуть сообщение об ошибке в форму, информирующее пользователя о выбореодин из доступных вариантов.

Как мне этого добиться?

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