我在处理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>
Malt控制器的一部分:
@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)
我尝试了几种不同的方法,但是我无法将任何错误消息返回到表单,通知用户选择可用选项之一。
我该如何实现?