Показать ошибки привязки рядом с каждым входом - PullRequest
6 голосов
/ 28 июля 2010

Как показать ошибки проверки 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>

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 01 апреля 2011

Надеюсь, вы уже поняли это.

Вы можете сделать следующее, чтобы отобразить все ошибки:

<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>
1 голос
/ 02 марта 2011

Не используйте пересылку или перенаправление.Вам необходимо отправить ответ обратно в представление.

например

if( result.hasErrors() )
{
   return "/contact";
}
1 голос
/ 28 июля 2010

То, что у вас есть с <form:errors path="firstname" />, работает для меня, когда я это делаю.

Убедитесь, что в вашем JSP правильно настроен тег <form:form/>:

<form:form name="someName" commandName="commandClassName">

Также убедитесь, что поле <form:errors> находится внутри тега <form:form> и что переменные вашего экземпляра для вашего класса команд имеют правильную прописную букву в JSP и методах получения / установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...