Struts 2.3:更改 Action Beans 的范围

Struts 2.3: Change scope for Action Beans

我是 Struts2 的新手。

我在 Struts 文档中找不到任何关于 bean 范围的信息,并且 Struts 默认使用 Request 范围,这不适合我的项目。

我在 Struts1 中找到了很多关于作用域使用的信息,但是所有指向文档的链接都不可用。

能否建议如何设置 Action 类 的范围?

Struts 这是一个 前端 MVC 框架。

Struts2 Actions是Controllers(MVC的C),不应该作为bean使用;他们应该改为将 beans 从底层业务层传递到视图(MVC 的 V,例如 JSP)。

您不应该有一个包含 50 个属性的操作,您应该有一个包含几个属性的操作,这些属性是 POJO,里面有 50 个属性。

在 Struts2 之后,您可以在业务层上使用任何 运行ning,例如 Java EE(EJB 3、JPA 2、CDI 等),及其所有 bean 和作用域,或 Spring,或其他任何东西。

Struts2 操作是线程安全的,根据请求实例化,这就是它的工作原理。不要尝试更改操作的范围以将它们用作 beans,请尝试了解什么是操作以及应如何使用它们。

旁注:如果你有自由选择,我建议 Struts2 + Java EE >=6 + Struts2-CDI-plugin + Struts2-Convention-plugin + Struts2-Json-plugin,运行 使用 Maven 并从 Maven 原型创建。