Возникла надобность сделать гостевую книгу. На странице отображаются отзывы посетителей и на этой же странице находится форма для ввода отзыва. Страницу обслуживает один контроллер, унаследованный от SimpleFormController.
Код контроллера:
| Код | public class FeedbackController extends SimpleFormController{
private Feedback f = new Feedback();
public FeedbackController() { setCommandClass(Feedback.class); setCommandName("feedback"); }
protected ModelAndView onSubmit(Object o) throws Exception { return new ModelAndView(getSuccessView()); }
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { List<Feedback> feedbacksList = manager.getFeedbacks(); ModelAndView m = new ModelAndView("feedback", "feedbacksList", feedbacksList); m.addObject(f); return m; } }
|
.
Когда откывается данная страница, срабатывает метод handleRequest и нормально отображается уже существующие отзывы. Но при создании нового отзыва после нажатия кнопки Submit все-равно срабатывает handleRequest, а не onSubmit. Хотя данные, введенные в форму в httpServletRequest есть. По сути, всегда вызывается handleRequest.
Код веб-формы (страница /feedback.html).:
| Код | <form:form commandName="feedback" method="POST" action="/feedback.html"> <table> <tr> <td>Name:</td> <td><form:input path="sender"/></td> </tr> <tr> <td colspan="2">Text:</td> </tr> <tr> <td colspan="2"><form:textarea path="text"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="Add Feedback"/></td> </tr> </table> </form:form>
|
Объявление контроллера:
| Код | <bean name="/feedback.html" class="org.makados.web.web.FeedbackController"> <property name="validator"> <bean class="org.makados.web.service.FeedbackValidator"/> </property> </bean>
|
Как сделать, чтобы при нажатии на кнопку Submit происходил сабмит формы, так как хочется иметь нормальную валидацию и сообщения об ошибках? |