首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用@SessionAttributes的最佳实践

使用@SessionAttributes的最佳实践
EN

Stack Overflow用户
提问于 2012-02-03 03:57:26
回答 2查看 1.9K关注 0票数 0

我正在尝试在Spring mvc应用程序中的两个控制器之间共享数据。

在控制器A中,我用@SessionAttributes({"mymodel1"})注释了类,并在接收第一个GET请求的方法中将其添加到ModelMap中:

代码语言:javascript
运行
复制
model.addAttribute("mymodel1", MyModel1);

我现在想从控制器B读取myModel1。在这个控制器中,我有以下方法来截取POST请求,并且在其参数中已经有了一个不同的模型:

代码语言:javascript
运行
复制
public String processSubmit(@ModelAttribute("mymodel2") MyModel2 mymodel2, BindingResult result, SessionStatus status, HttpServletRequest httpRequest)

到目前为止,一切工作正常,我可以从processSubmit读取mymodel2。但是,如果我现在想要向此方法签名添加另一个@ModelAttribute(" MyModel1 ") mymodel1 mymodel1,我应该能够读取我在控制器A中设置的值,但是我得到的异常是第一个模型不再被识别。

所以我的问题是:我如何从控制器B读取mymodel2?

EN

Stack Overflow用户

发布于 2012-02-04 02:42:00

上面的javadoc摘录是使用@SessionAttributes的最典型的方式。然而,Joly所描述的也应该是可行的。会话属性通过DefaultSessionAttributeStore存储,默认情况下,它在将属性名称存储在会话中时不会为属性名称添加前缀。这意味着如果ControllerA和ControllerB都列出了一个名为"mymodel1“的属性,那么它们实际上引用的是同一个会话属性。你需要提供更多关于你得到的错误和实际的控制器代码的信息。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9119047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档