我们正在使用Spring 2.5.x,我们正在这样做:发布一个表单,在我们生成一些数据的控制器方法中对此做出响应。现在,最后我们正在重定向到另一个页面。我们需要访问post请求处理程序方法中生成的数据。
从post处理程序,声明返回ModelAndView:
Map<String, String> map = new HashMap<String, String>();
map.put("myKey", "someValue");
ModelAndView mav = new ModelAndView(new RedirectView("/my/view", true, true, false), map);
return mav;
在get方法处理程序中,我们希望访问这些数据并在此方法的视图中使用它们。我们如何访问这些值?我注入此方法的模型图是空的。如果我尝试使用${myKey}
我们正在使用Spring 2.5.x,因此我无法使用RequestAttributes
等。
答案 0 :(得分:0)
FlashMap
获得的 RequestContextUtils
。在Spring 3.1中添加了。据我所知,你需要实现自己的flash属性机制。您可以按照this blog post中的说明使用servlet Filter
。或者,基本上,将内容添加到HttpSession
并在将来的请求中清除它们。
答案 1 :(得分:0)
在执行重定向之前,将地图数据保存在会话范围中。然后在您的页面中,使用JSTL使用地图中的数据。在页面底部,使用<c:remove>
从会话范围中删除此地图。
在你的java类中:
Map<String, String> map = new HashMap<String, String>();
map.put("myKey", "someValue");
session.addAttribute("myMap", map);
//the rest of your logic...
在JSP / JSTL代码中:
Map.myKey value: ${map.myKey}
<!-- at the bottom of the JSP, remove the variable from session -->
<c:remove var="myMap" scope="session" />