【问题标题】:Show binding errors next to each input在每个输入旁边显示绑定错误
【发布时间】:2010-07-27 23:45:19
【问题描述】:

如何在每个输入/组件的 NEXT 中显示验证错误?

验证器:

@Override
public void validate( final Object obj, final Errors e )
{
   ValidationUtils.rejectIfEmpty( e, "firstname", "error.firstname.empty" );
}

JSP:

<form:label  path="firstname">
   <spring:message code="label.firstname" />
</form:label>
<form:input  path="firstname" />
<form:errors path="firstname" /> <!-- THIS DOES NOT WORK! -->

我可以使用以下视图代码显示所有错误:

<spring:hasBindErrors name="contact">
   <ul>
      <c:forEach var="error" items="${errors.allErrors}">
         <spring:message code="${error.code}"></spring:message>
      </c:forEach>
   </ul>
</spring:hasBindErrors>

有什么想法吗?

【问题讨论】:

    标签: spring validation spring-mvc


    【解决方案1】:

    希望你已经明白了。

    您可以执行以下操作来显示所有错误:

    <spring:bind path="contactUs.*">
      <c:if test="${status.errors.errorCount > 0}">
        <ul>
        <c:forEach var="error" items="${status.errors.allErrors}">
        <li><spring:message message="${error}"></spring:message></li>
        </c:forEach>
        </ul>
      </c:if>
    </spring:bind>
    

    如果您需要显示每个表单输入并且它的绑定错误彼此相邻,您需要这样做:

    <spring:bind path="contactUs.email">
      <input value="${status.value}" name="${status.expression}">
        <c:if test="${status.error}">
          Error codes:
          <c:forEach items="${status.errorMessages}" var="error">
            <c:out value="${error}"/>
          </c:forEach>
        </c:if>
      </input>
    </spring:bind>
    

    【讨论】:

      【解决方案2】:

      &lt;form:errors path="firstname" /&gt; 提供的功能对我有用。

      确保在您的 JSP 中正确设置了 &lt;form:form/&gt; 标签:

      &lt;form:form name="someName" commandName="commandClassName"&gt;

      还要确保&lt;form:errors&gt; 字段位于&lt;form:form&gt; 标记内,并且命令类的实例变量在JSP 和getter/setter 中具有正确的大小写。

      【讨论】:

        【解决方案3】:

        不要使用转发或重定向。您需要将响应发送回视图。

        例如

        if( result.hasErrors() )
        {
           return "/contact";
        }
        

        【讨论】:

          猜你喜欢
          • 2012-06-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-17
          • 2015-11-19
          • 1970-01-01
          相关资源
          最近更新 更多