viernes, 30 de septiembre de 2016

Porque no funciona el formulario Spring MVC: java.lang.IllegalStateException: Neither BindingResult nor plain target object


Intentando algo sencillo como cargar un formulario de Spring MVC y haciendo uso de etiquetas de Spring (documentación aquí).  El código Java que accedía a la página es este:

@RequestMapping( value = "/goToJsp", method = RequestMethod.GET )
public String goToJsp( ) {
return "pageToGo";
}

Y el código JSP es este:

<form:form method="post" modelAttribute="exampleForm" action="/goToController">

Bastante sencillo todo, pero por alguna razón al intentar cargar la página daba la siguiente excepción:

SEVERE: Neither BindingResult nor plain target object for bean name ‘exampleForm’ available as request attribute
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name ‘exampleForm’ available as request attribute

¿Donde esta el problema? En la configuración de la etiqueta Spring form. En ella se indica cual es el modelo que esta detrás del formulario y en el cual se recogerán los campos del mismo. Por tanto, cuando hacemos esta asociación antes de acceder a la página debemos asociar este objeto. Ya que de otra forma desconoce la clase asociada a los campos del formulario. Por tanto la solución estaría en el código Java y se implementaría así:

@RequestMapping( value = "/goToJsp", method = RequestMethod.GET )
public String goToJsp(final Model model ) {
model.addAttribute( "exampleForm", new ExampleForm() );
return "pageToGo";
}

No hay comentarios:

Publicar un comentario