我是 Struts2 新手。
我在 Struts 文档中找不到任何有关 bean 作用域的信息,并且 Struts 默认使用 Request 作用域,这不适合我的项目。
我发现了很多有关 Struts1 中范围使用的信息,但所有文档链接都不可用。
您能否建议如何设置操作类的范围?
最佳答案
Struts 是一个前端 MVC 框架。
Struts2 Actions 是 Controller (MVC 的 C),不应该用作 bean;相反,它们应该将 bean 从底层业务层传送到 View (MVC 的 V,例如 JSP)。
您不应该有一个包含 50 个属性的操作,您应该有一个包含几个属性的操作,这些属性是内部有 50 个属性的 POJO。
在 Struts2 后面,您可以在业务层上运行任何东西,例如 Java EE(EJB 3、JPA 2、CDI 等)及其所有 bean 和作用域,或者 Spring,等等。
Struts2 Actions 是线程安全的,按请求实例化,这就是它的工作原理。不要尝试更改操作的范围以将它们用作 bean,尝试了解操作是什么以及应该如何使用它们。
旁注:如果你有自由选择,我建议 Struts2 + Java EE >=6 + Struts2-CDI-plugin + Struts2-Convention-plugin + Struts2-Json-plugin,使用 Maven 运行并从 Maven 创建原型(prototype)。
关于java - 支柱2.3 : Change scope for Action Beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184854/