Question

Je suis en train actuellement de revenir un modèle de onSubmit () dans mon contrôleur. Je puis tente de récupérer dans mon jsp.

par exemple

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

puis récupérer avec

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

Toutefois, cela n'affiche rien. il va à la redirectview correcte et ne délivre pas d'erreur, mais le texte n'apparaît pas.

Toute aide sera très appréciée.

Merci

Était-ce utile?

La solution

Qu'est-ce que RedirectView n'envoie un en-tête de redirection vers le navigateur si le navigateur effectue une recharge complète de la page, comme un modèle de résultat ne vous emballez pas là-bas (comme il est géré maintenant par le contrôleur de connexion avec son propre modèle).

Qu'est-ce que vous pouvez faire est de passer des erreurs par demande attributs:

Dans votre views.properties:

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

Alors, au lieu de retour RedirectView:

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

Et dans votre contrôleur connexion pour vérifier cet attribut et l'ajouter au modèle.

Mise à jour: Sans utiliser views.properties:

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

Vous pouvez aussi ajouter (une autre) vue interne résolveur à votre App-servlet.xml (Note de l'API: Lorsque enchaînant ViewResolvers, un InternalResourceViewResolver doit toujours être le dernier, car il va tenter de résoudre un nom de vue, peu importe que ce soit la ressource sous-jacente existe réellement).

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

Et puis il suffit d'utiliser:

request.setAttribute("errors", "example errors");
return new ModelAndView("/login.htm");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top