如何从 ValueStack 中删除操作?
How to remove actions from the ValueStack?
我正在尝试使我的操作 类 成为单例。重点是在 MVC 模式中制作动作 类 真正的 控制器。特别是在实现 REST 控制器时,控制器的范围可以扩展到应用程序的生命周期。就像在 Spring 框架中一样,控制器默认放在默认范围内,Spring 中的默认范围是单例。
Struts 2也有默认作用域,也是单例。我想将我的操作 类 放入此范围并将它们从值堆栈中删除。
如何修改 Struts 2 框架,使我的操作像 Spring 中的控制器一样?我知道我可以将操作 类 的管理委托给 Spring,但我不能使用默认范围,并且 Struts 2 容器仍然保持 运行。我无法将它从框架中删除,因为它不可插入。
因此,在 Spring 和 Struts2 容器中走动我无法使我的操作 类 单例,因为 Struts 2 实例化并将它们放入 ValueStack
.
这是我的问题:
如果我选择 Struts 2 和 Spring 之间的容器将我的操作 类 放入默认范围,我怎么能告诉 Struts 2 框架不要放他们到 ValueStack
?
假设您正在使用 XWork 的 DefaultActionInvocation
实现,它是通过 init
方法在那里完成的。将它拉出来有点痛苦,因为它位于 XWork 和 S2 中的动作代理和动作代理工厂之下。
就是说,我会 非常 对进行这样的更改犹豫不决;它具有系统范围的影响,并且与 关于 XW/WW/S2.
的一切 本质上相反
(不相关,但定义控制器的不是单例性质,而是定义组件的职责。)
我正在尝试使我的操作 类 成为单例。重点是在 MVC 模式中制作动作 类 真正的 控制器。特别是在实现 REST 控制器时,控制器的范围可以扩展到应用程序的生命周期。就像在 Spring 框架中一样,控制器默认放在默认范围内,Spring 中的默认范围是单例。
Struts 2也有默认作用域,也是单例。我想将我的操作 类 放入此范围并将它们从值堆栈中删除。
如何修改 Struts 2 框架,使我的操作像 Spring 中的控制器一样?我知道我可以将操作 类 的管理委托给 Spring,但我不能使用默认范围,并且 Struts 2 容器仍然保持 运行。我无法将它从框架中删除,因为它不可插入。
因此,在 Spring 和 Struts2 容器中走动我无法使我的操作 类 单例,因为 Struts 2 实例化并将它们放入 ValueStack
.
这是我的问题:
如果我选择 Struts 2 和 Spring 之间的容器将我的操作 类 放入默认范围,我怎么能告诉 Struts 2 框架不要放他们到 ValueStack
?
假设您正在使用 XWork 的 DefaultActionInvocation
实现,它是通过 init
方法在那里完成的。将它拉出来有点痛苦,因为它位于 XWork 和 S2 中的动作代理和动作代理工厂之下。
就是说,我会 非常 对进行这样的更改犹豫不决;它具有系统范围的影响,并且与 关于 XW/WW/S2.
的一切 本质上相反(不相关,但定义控制器的不是单例性质,而是定义组件的职责。)