gpt4 book ai didi

java - 如何从 ValueStack 中删除操作?

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:13 25 4
gpt4 key购买 nike

我正在尝试使我的 Action 类成为单例。重点是使操作类成为 MVC 模式中真正的 Controller 。特别是在实现 REST Controller 时, Controller 的范围可以扩展到应用程序的生命周期。与 Spring 框架中一样, Controller 默认放置在默认作用域中,Spring 中的默认作用域是单例。

Struts 2 也有一个默认作用域,而且它也是单例的。我想将我的操作类放入此范围并将它们从值堆栈中删除。

如何修改 Struts 2 框架以使我的操作像 Spring 中的 Controller 一样?我知道我可以将操作类的管理委托(delegate)给 Spring,但我不能使用默认范围,并且 Struts 2 容器仍然保持运行。我无法将其从框架中删除,因为它不可插入。

因此,在 Spring 和 Struts2 容器中走动时,我无法使操作类成为单例,因为 Struts 2 会实例化并将它们放入 ValueStack 中。

这是我的问题:

如果我选择 Struts 2 和 Spring 之间的容器将操作类放入默认范围,我如何告诉 Struts 2 框架不要将它们放入 ValueStack 中?

最佳答案

假设您正在使用 XWork 的 DefaultActionInvocation 实现,它是通过 init 方法完成的。将其拉出来有点痛苦,因为它位于 XWork 和 S2 中的操作代理和操作代理工厂下面。

也就是说,我会非常犹豫做出这样的改变;它具有系统范围的影响,并且基本上与 XW/WW/S2 的一切背道而驰。

(不相关,但单例本质并不是定义 Controller ,而是定义组件的职责。)

关于java - 如何从 ValueStack 中删除操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40233771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com