如何手动控制 fields.hasErrors() 和 bindingResult
我正在尝试检查是否有包含项目的List
。所以我在我的 HTML
中使用这段代码:
<div class="form-group-petit row">
<div class="col-sm-12">
<table class="table center" id="tableSelectedEstudis">
<col style="width:80%">
<col style="width:20%">
<!-- <col style="width:10%"> -->
<thead>
<tr>
<th scope="col" data-th-text="#{edicio.estudis}"></th>
<th scope="col" data-th-text="#{edicio.estudis.vigent}">Vigent</th>
<!-- <th scope="col" data-th-text="#{label.accions}">Accions</th> -->
</tr>
</thead>
<tbody>
<tr th:each="estudi : *{listEstudis}">
<td scope="row" th:text="${estudi.codiEstudi + ' - ' + estudi.memo}" />
<td scope="row" th:text="${estudi.vigentSN}" />
<!--
<td>
<span class="link" id="eliminarEstudi" title="Elimina estudi"
th:attr="data-codiestudi=${estudi.codiEstudi}"
th:unless="*{altaOk} OR *{altaKo}">
<i class="oi oi-delete"></i>
</span>
</td>
-->
</tr>
<tr></tr>
</tbody>
</table>
</div>
</div>
<label class="error col-sm-10"
th:if="${#fields.hasErrors('listEstudis')}"
th:errors="*{listEstudis}"></label>
通常我应该在表单中添加 @NotEmpty
标签,让 Spring 自动工作。就我而言,我不能这样做,我需要手动添加错误。所以我在我的控制器中执行此操作:
String[] codes = {
"NotEmpty.admEdicionsDetallForm.listEstudis",
"NotEmpty.listEstudis",
"NotEmpty.java.util.List",
"NotEmpty" };
String objectName = "admEdicionsDetallForm";
Object[] objects = {
new DefaultMessageSourceResolvable(
new String[]{"admEdicionsDetallForm.listEstudis", "listEstudis" },
null,
"listEstudis")};
if (llistatEstudis.isEmpty()) {
bindingResult.addError(
new ObjectError(
objectName,
codes,
objects,
"És obligatori seleccionar almenys un estudi"));
}
但是当我尝试手动执行此操作时,该消息没有显示,但是如果我使用 @NotEmpty
标签执行此操作,则它可以工作。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
rejectValue()
方法用于向BindingResult
对象。 https://stackoverflow.com/a/65759773/2039546因此,在您的代码中,不要:
尝试使用:
The
rejectValue()
method is used to add a validation error to theBindingResult
object. https://stackoverflow.com/a/65759773/2039546So, in your code, instead of:
Try with: