如何使用spring mvc检查特定属性是否发生错误

时间:2013-05-13 01:53:40

标签: spring-mvc taglib

我正在使用表单标记。

<form:form commandName="foo">
    <div class="myclass  ">
        <label>Foo</label>
            <form:input path="fooName"/>
    </div>
        <div class="controls">
            <input type="submit" class="btn" value="Submit"/>
        </div>
</form:form>

问题

有没有办法找出特定字段是否发生错误?

我知道<form:erros path="fooName"/>,但这会打印出错误消息。我根据fooName属性上是否发生错误而返回真或假的内容。我需要这个,因为如果错误发生,那么我可以在error旁边插入css类my class

1 个答案:

答案 0 :(得分:16)

是的,有可能:

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>                             
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

<form:form commandName="foo">
    <spring:bind path="fooName">
        <div class="myclass ${status.error ? 'error' : ''}">
            <label>Foo</label>
            <form:input path="fooName"/>
        </div>
    </spring:bind>
    <div class="controls">
        <input type="submit" class="btn" value="Submit"/>
    </div>
</form:form>

将字段括在<spring:bind>标记内时,您可以访问类型为BindStatus的隐式变量status。您可以使用它来检查该字段是否有错误。

您也可以找到有用的以下链接:


以下是使用<spring:hasBindErrors>的另一种方法(在其内部,您可以访问类型为Errorserrors变量),该方法仅适用于 JSP 2.2 的环境:

<spring:hasBindErrors name="foo">
    <div class="myclass ${errors.hasFieldErrors('fooName') ? 'error' : ''}">
        <label>Foo</label>
        <form:input path="fooName"/>
    </div>
</spring:hasBindErrors>