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

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

Здравствуйте, Весенние Ребята,

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

<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 ответов


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

<spring:bind path = "name*">
    <c:if test="${status.error}"> 
        <tr> 
            <td> 
                <form:errors path="name*" /> 
            </td> 
        </tr> 
    </c:if> 
</spring:bind>

Я решил вашу проблему, сделав это:

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

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


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