Есть несколько способов сделать это. Я предпочитаю не использовать метод showForm (), потому что я хочу больше контроля. Поэтому я делаю одно из следующего, я уверен, что на ваш вопрос будет дано несколько альтернативных ответов.
Если вы не хотите, чтобы произошла ошибка из-за определенного поля, вы можете просто отправить сообщение об ошибке на модель, подобную этой:
ModelAndView mav = new ModelAndView(this.getFormView());
mav.addObject(this.getCommandName(), command);
mav.addObject("errorMessage", "The thing you tried to do failed");
return mav;
Тогда в вашем JSP вы сделаете это:
<c:if test="${not empty errorMessage}">
${errorMessage}
</c:if>
Если у вас есть конкретное поле, вызвавшее ошибку, вы можете прикрепить ошибку к конкретному полю, например так (это отклоняет длину поля под названием alternateid):
errors.rejectValue("alternateId", "longerThan",
new Object[] { Integer.valueOf(2) }, "Please enter at least two characters.");
ModelAndView mav = new ModelAndView(this.getFormView());
mav.addAllObjects(errors.getModel());
mav.addObject(this.getCommandName(), command);
return mav;
Тогда в вашем jsp вы используете библиотеку тегов формы и делаете это:
<form:errors path="alternateId"/>
Предполагается, что вы используете библиотеку тегов пружинной формы.