Spring MVC错误消息
您好,Spring Fellows,
我有一个表单,一旦提交就通过Spring Validation验证。如果验证失败,表单上的每个字段可能包含多个错误消息,因此错误消息显示在字段下方,而不是旁边。这是代码段。
<tr>
<td><form:input path="name" /></td>
</tr>
<tr>
<td>
<form:errors path="name*" />
</td>
</tr>
请注意,路径值末尾有一个星号表示必须显示name
的所有错误消息。
正如您所看到的,问题在于,如果没有错误消息,页面上会有一个额外的行对用户来说不合适。上面的代码是一个过于简单的版本,因此实际代码中包含更多内容,这使我无法移动包含该字段的标记内的<form:errors>
标记。
有没有办法找出JSP级别上是否有与给定路径关联的消息?基本上,我想做以下事情:
<c:if test="${what do I write here?}">
<tr>
<td>
<form:errors path="name*" />
</td>
</tr>
</c:if>
谢谢!
答案 0 :(得分:6)
您可以执行以下操作(请注意bind
来自spring
taglib):
<spring:bind path = "name*">
<c:if test="${status.error}">
<tr>
<td>
<form:errors path="name*" />
</td>
</tr>
</c:if>
</spring:bind>
答案 1 :(得分:3)
我通过这样做解决了你的问题:
<table>
<form:errors path="firstName">
<tr>
<td colspan="2">
<form:errors path="firstName"/>
</td>
</tr>
</form:errors>
<tr>
<td><form:label path="firstName"><spring:message code="helloworld.label.firstName"/></form:label></td>
<td><form:input path="firstName"/></td>
</tr>
</table>
仅当路径上存在错误时,才会评估错误标记正文。
答案 2 :(得分:0)
最简单的答案是不使用表格进行页面布局。利用div标签可以完全缓解这个问题,因为如果设置为隐藏,则divs完全没有维度。