【发布时间】:2012-02-14 08:29:47
【问题描述】:
我目前正在开发一个集成了向导/工作流的 Struts2 应用程序,以产生所需的结果。为了更清楚,有一个业务对象在三个不同的页面上发生了变化(主要是通过 AJAX 调用)。目前,我正在使用 ModelDriven 操作(通过使用同一业务对象的所有操作进行扩展)以及 Scope 拦截器。虽然如果用户一次只处理一个业务对象的数据,这可以正常工作,但如果用户在多个选项卡中打开不同对象的向导(当我们想要更快地完成事情时,我们都会这样做)一切都会变得混乱,主要是因为我在会话中只存储了一个业务对象。
我已经阅读了几篇关于使用对话范围拦截器 (main article) 和关于使用范围插件 (here) 的文章。但是,这两种方法似乎都有问题:
- 对话范围拦截器不会自动使对话过期,也不会与 Struts2 正确集成;
- Scope 插件缺少适当的文档,最后一次构建是在 2007 年(实际上包括 Mark Menard 在定义他的 Conversation Scope Interceptor 时编写的一些想法,尽管它不使用相同的代码)。
Spring 的 WebFlow 插件目前似乎有点过于复杂,无法使用。我目前正在寻找可以在几个小时内实施的东西,但我不介意你是否可以根据需要提出一些可行的建议,即使它需要的时间比我现在想要花的时间多.
那么,经验丰富的 Struts2 开发人员,您有什么建议?我应该如何实现这个?
【问题讨论】:
-
你的项目中是否已经为 DI 设置了弹簧?
-
@Quaternion:是的,Spring 正在管理项目中 DAO 对象的创建。
标签: struts2 workflow wizard interceptor scopes