Spring MVC错误消息

时间:2010-11-22 19:07:52

标签: java spring spring-mvc

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>

谢谢!

3 个答案:

答案 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完全没有维度。