0

我是春天的新手。我正在开发一个 MVC 应用程序,其工作方式如下:

1) 用户在表单中填写创建与某些服务的连接所需的数据

2) 控制器从输入中获取数据,创建新对象 serviceManager 并将该对象保存在例如带有 serviceId 的一些 HashMap 中

3) 下次用户想要使用这个服务时,控制器使用 serviceId 从 HashMap 中读取数据。

所以我只需要在整个会话中将这个 HashMap 存储在我的控制器中以供将来使用。实现这一目标的最佳方法是什么?也许每次创建 serviceManager 对象并从数据库中读取数据是正确的解决方案?在我的控制器中,我已经在使用完美服务于目的的 @Autowired 字段,但它们是在 spring xml 中定义的,我必须动态存储数据。

4

2 回答 2

0

Seems your requirement is kind of same with mine which I should keep the main data in the session and every time get the detail data from client and combine 2 kind of data to retrieve something from database. I just put the main part data in the session and then in the whole session that I can get it. I also try to use @SessionAttribute, but after tried dozens of time, I gave it up, it has a lots of problems. So if you can, I just recomment you to store the data in session, that's the samplest way.

于 2013-03-24T11:53:00.163 回答
-1

我对自己很陌生,但就在会议中提出这个问题而言:

@Controller
@SessionAttributes({"myObject"})
public class MyController() {
...
    @RequestMapping(value="/foo")
// Corrected as per Costi below
//    public String someMethod(@PathVariable MyObject myObject) {
    public String someMethod(@ModelAttribute MyObject myObject) {
    ...
    }
}

@SessionAttributes 会将名为 myObject 的 MyObject 放入会话中,如果它不存在的话,@PathVariable 会将其拉下,以便您可以在方法中使用它。

会话属性中的 curlys 不是一个属性所必需的,但是,当您使用数组表示法(即:curlys)时,您可以指定多个,逗号分隔

于 2013-03-23T23:55:54.207 回答