2009-07-26 10 views
0

Ich versuche derzeit, ein Modell von onSubmit() in meinem Controller zurückgeben. Ich versuche dann, dies in meinem JSP zu erhalten.Abrufen eines Modells von ModelAndView in Jsp

zum Beispiel

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

und dann Abrufen mit

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

aber dies nichts anzeigt. Es wird in den richtigen Redirectview und keine Fehler ausgegeben, aber der Text wird nicht angezeigt.

Jede Hilfe wird sehr geschätzt.

dank

Antwort

2

Welche RedirectView einen Redirect-Header an den Browser kann leider sendet so Browser eine komplette Neuladen der Seite der Fall ist, als ein Ergebnis Modell dort nicht durch bekommt (wie es jetzt mit von Login-Controller gehandhabt wird ein eigenes Modell).

Was können Sie tun, ist Passfehler durch Anfrage Attribute:

In Ihrem views.properties:

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

Dann statt RedirectView Rückkehr:

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

Und in Ihrem Login-Controller Suchen Sie nach diesem Attribut und fügen Sie es dem Modell hinzu.

Update: Ohne Verwendung views.properties:

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

oder Sie können hinzufügen (andere) Innenansicht Resolver auf Ihre App-servlet.xml (Hinweis von API: Wenn ViewResolvers Verkettungs, ein InternalResourceViewResolver immer muss letzte sein, da es jede Ansicht Namen aufzulösen versucht, ganz gleich ob die zugrunde liegende Ressource tatsächlich existiert.):

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

Und dann benutzen sie einfach:

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

entschuldigung, ich bin sehr neu zu spring mvc und in der regel webapps im allgemeinen. Ich habe die obigen Vorschläge hinzugefügt, aber ich bekomme den folgenden Fehler Die angeforderte Ressource (/example/WEB-INF/jsp/loginController.jsp) ist nicht verfügbar. Dies kommt von dem View Resolver, den ich konfiguriert habe. – smauel

+0

Ich aktualisierte die Antwort mit einer einfachen Lösung (die erste nahm an, dass Sie veiws.properties zum Auflösen von Sichten verwenden) – serg

Verwandte Themen