4

我正在使用表单标签。

<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

4

1 回答 1

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>标签内时,您可以访问 type 的隐式status变量BindStatus。您可以使用它来检查该字段是否有错误。

您可能还会发现以下有用的链接:


这是另一种方法<spring:hasBindErrors>(在其中您可以访问errorstype 变量Errors),该方法仅适用于JSP 2.2环境:

<spring:hasBindErrors name="foo">
    <div class="myclass ${errors.hasFieldErrors('fooName') ? 'error' : ''}">
        <label>Foo</label>
        <form:input path="fooName"/>
    </div>
</spring:hasBindErrors>
于 2013-05-13T07:40:27.600 回答