【问题标题】:How to check whether an error happened on a specific property with spring mvc如何使用spring mvc检查特定属性是否发生错误
【发布时间】:2013-05-13 01:53:39
【问题描述】:

我正在使用表单标签。

<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>

问题

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

我知道&lt;form:erros path="fooName"/&gt;,但这会打印出错误消息。我追求的东西只是根据错误是否发生在fooName 属性上而返回真或假。我需要这个,因为如果发生错误,我可以在 my class 旁边插入 css 类 error

【问题讨论】:

    标签: spring-mvc taglib


    【解决方案1】:

    是的,有可能:

    <%@ 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>
    

    当您将字段包含在&lt;spring:bind&gt; 标记内时,您可以访问BindStatus 类型的隐式变量status。您可以使用它来检查该字段是否有错误。

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


    这是使用&lt;spring:hasBindErrors&gt; 的另一种方式(在其中您可以访问errors 类型为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>
    

    【讨论】:

    • 通过使用 hasBindErrors 结合 hasFieldErrors 我得到这个错误 - The function hasFieldErrors must be used with a prefix when a default namespace is not specified
    • 我刚刚发现,errors.hasFieldErrors() 表达式仅适用于 JSP 2.2 环境。因此,它取决于您使用的 servlet 容器/应用程序服务器。请参阅以下主题:forum.springsource.org/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2011-11-03
    • 2020-02-09
    • 2021-03-12
    • 1970-01-01
    相关资源
    最近更新 更多