Pregunta

Actualmente estoy tratando de devolver un modelo de onSubmit () en mi controlador. Entonces estoy tratando de recuperar esta en mi JSP.

por ejemplo

Map model = new HashMap();
model.put("errors", "example error");
return new ModelAndView(new RedirectView("login.htm"), "model", model);

y luego recuperar con

<c:out value="${model.errors}"/>

Sin embargo, esto no muestra nada. se va a la RedirectView correcta y no emite ningún error, pero no se muestra el texto.

Cualquier ayuda será muy apreciada.

gracias

¿Fue útil?

Solución

Lo que hace RedirectView es el envío de una cabecera de redirección al navegador para el navegador hace una recarga completa de la página, como un modelo de resultado no se deja llevar por allí (ya que es manejado ahora por el controlador de acceso con su propio modelo).

Lo que puede hacer es pasar a través de los errores de los atributos de solicitud:

En sus views.properties:

loginController.(class)=org.springframework.web.servlet.view.InternalResourceView
loginController.url=/login.htm

A continuación, en lugar de retorno RedirectView:

request.setAttribute("errors", "example errors");
return new ModelAndView("loginController");

Y en su cheque de controlador de inicio de sesión para este atributo y añadirlo al modelo.

Actualización: Sin utilizar views.properties:

request.setAttribute("errors", "example errors");
return new ModelAndView(new InternalResourceView("/login.htm"));

O puede agregar (otro) interno vista resolvedor a su App-servlet.xml (Nota de API: Cuando se encadenan ViewResolvers, un InternalResourceViewResolver siempre tiene que ser el último, ya que intentará resolver cualquier nombre de la vista, no importa si los recursos que subyacen en realidad existe):.

<bean id="viewResolver2"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
</bean>

Y a continuación, sólo tiene que utilizar:

request.setAttribute("errors", "example errors");
return new ModelAndView("/login.htm");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top