Я пробовал это некоторое время, но не могу найти правильное решение.
Я хочу использовать JSTL, чтобы проверить, существуют ли какие-либо ошибки привязки (полевая ошибка или глобальная ошибка), это произошло в моем Spring MVC 2.5.
Я знаю, что могу использовать этот код:
<p>
<spring:hasBindErrors name="searchItems">
An Error has occured
</spring:hasBindErrors>
</p>
Но я хочу использовать JSTL для проверки на любые ошибки.
Я попробовал это использование JSTL:
<c:if test="${not empty errors}">
An Error has occured
</c:if>
Но кажется, что я не могу поймать его правильно.
Мне нужно к используемому JSTL, так как существуют другие части JSP, который полагается на присутствие или отсутствие ошибки привязки.
Как сказано
Я хочу использовать JSTL для проверки на наличие ошибок
Просто используйте (Он просто работает на Spring MVC 2.5 - не переносится для Spring MVC 3.0 хотя я полагаю это requestScope ['bindingResult.
<c:if test="${not empty requestScope['org.springframework.validation.BindingResult.<COMMAND_NAME_GOES_HERE>'].allErrors}">
An Error has occured!!!
</c:if>
Имейте в виду по умолчанию имя команды не- квалифицированное имя класса команды с первой буквой в нижнем регистре . Обратите внимание, что имя команды ниже pet
private PetValidator petValidator = new PetValidator();
@RequestMapping(method.RequestMethod.POST)
public void form(Pet command, BindingResult bindingResult) {
if(petValidator.validate(command, bindingResult)) {
// something goes wrong
} else {
// ok, go ahead
}
}
Итак, ваша форма должна выглядеть как
<!--Spring MVC 3.0 form Taglib-->
<form:form modelAttribute="pet">
</form:form>
<!--Spring MVC 2.5 form Taglib-->
<form:form commandName="pet">
</form:form>
Если вы не используете @ModelAttribute
@RequestMapping(method.RequestMethod.POST)
public void form(@ModelAttribute("command") Pet command, BindingResult bindingResult) {
// same approach shown above
}
Таким образом, ваша форма должна выглядеть как
<!--Spring MVC 3.0 form Taglib-->
<form:form modelAttribute="command">
</form:form>
<!--Spring MVC 2.5 form Taglib-->
<form:form commandName="command">
</form:form>