什么RedirectView的作用是发送一个重定向头至浏览器,浏览器页面的完整的重新加载,因此模型不得意忘形那边(因为它与现在处理通过登录控制器它自己的模型)。
你可以做的是传失误通过请求属性:
在你views.properties:
loginController.(class)=org.springframework.web.servlet.view.InternalResourceView
loginController.url=/login.htm
然后,而不是RedirectView的回报:
request.setAttribute("errors", "example errors");
return new ModelAndView("loginController");
而在你的登录控制器检查该属性并将其添加到模型中。
更新:不使用views.properties:
request.setAttribute("errors", "example errors");
return new ModelAndView(new InternalResourceView("/login.htm"));
也可以添加(另一个)内部视图解析器到你的App-servlet.xml中(注意从API:当链接ViewResolvers,如果InternalResourceViewResolver总是必须是最后的,因为它会尝试解决任何视图名称,不管底层的资源是否实际存在)。
<bean id="viewResolver2"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
</bean>
,然后只用:
request.setAttribute("errors", "example errors");
return new ModelAndView("/login.htm");
道歉,我对spring mvc以及一般的webapps都很陌生。我已添加上述建议,但出现以下错误请求的资源(/example/WEB-INF/jsp/loginController.jsp)不可用。这来自我配置的视图解析器。 – smauel 2009-07-26 19:19:18