Сообщения об ошибках 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 полностью безразмерны, если установлено значение скрыто.