0

我们正在使用 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等。

4

2 回答 2

0

FlashMap你会得到的RequestContextUtils。在 Spring 3.1 中添加。据我所知,因此您需要实现自己的闪存属性机制。您可以按照此博客文章Filter中的说明使用 servlet 。或者,基本上,在未来的请求中添加东西并清除它们。HttpSession

于 2013-09-19T16:24:38.853 回答
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" />
于 2013-09-19T16:29:23.507 回答