Сообщения об ошибках Spring MVC - PullRequest
6 голосов
/ 22 ноября 2010

Spring MVC Сообщения об ошибках

Здравствуйте, Spring Fellows,

У меня есть форма, которая проверяется Spring Validation после отправки. Каждое поле в форме может содержать несколько сообщений об ошибках, если проверка не удалась, поэтому сообщения об ошибках отображаются под полем, а не рядом с ним. Вот фрагмент кода.

<tr>
    <td><form:input path="name" /></td>
</tr>
<tr>
    <td>
        <form:errors path="name*" />
    </td>
</tr>

Обратите внимание, что в конце значения пути есть звездочка, указывающая, что должны отображаться все сообщения об ошибках для name.

Как видите, проблема в том, что, если нет сообщения об ошибке, на странице будет дополнительная строка, которая выглядит неуместной для пользователя. Приведенный выше код является чрезмерно упрощенной версией, поэтому в самом коде содержится гораздо больше материала, что не позволяет мне перемещать тег <form:errors> внутри тега, содержащего поле.

Есть ли способ узнать, есть ли какое-либо сообщение, связанное с данным путем на уровне JSP? В основном я хотел бы сделать следующее:

<c:if test="${what do I write here?}">
    <tr>
        <td>
            <form:errors path="name*" />
        </td>
    </tr>
</c:if>

Спасибо!

Ответы [ 3 ]

6 голосов
/ 22 ноября 2010

Вы можете сделать что-то подобное (обратите внимание, что bind от spring taglib):

<spring:bind path = "name*">
    <c:if test="${status.error}"> 
        <tr> 
            <td> 
                <form:errors path="name*" /> 
            </td> 
        </tr> 
    </c:if> 
</spring:bind>
3 голосов
/ 01 июля 2011

Я решил вашу проблему, выполнив следующее:

<table>
    <form:errors path="firstName">
    <tr>
        <td colspan="2">
            <form:errors path="firstName"/>
        </td>
    </tr>
    </form:errors>
    <tr>
        <td><form:label path="firstName"><spring:message code="helloworld.label.firstName"/></form:label></td>
        <td><form:input path="firstName"/></td>
    </tr>
</table>

Тело тега ошибки будет оцениваться только при наличии ошибок в пути.

0 голосов
/ 22 ноября 2010

Самый простой ответ - не использовать таблицы для разметки страницы.Использование тегов div полностью решает эту проблему, так как div безразмерны, если скрыто.

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