java - 支柱2.3 : Change scope for Action Beans

标签 java configuration struts2 migration struts

我是 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/

相关文章:

spring - 自定义错误页面 + spring security 3 + hasPermission

java - EqualsAndHashCode.Exclude 无法解析为类型

java - 映射 : expected org. apache.hadoop.io.Text 中的键类型不匹配,收到 org.apache.hadoop.io.IntWritable

java - Spring Websocket升级请求处理

ssl - 使用 HTTPS/SSL 启动 Typesafe Play Framework

java - 在Struts2中加载长时间运行的初始化数据时如何避免WSOD(黑屏)?

java - 使用 DecimalFormat 将科学记数法转换为 java 中的固定记数法

linux - 在 Raspberry Pi 上重新映射键盘时出现问题

spring-boot - Rabbitmq Camel Spring 启动自动配置

java - Struts 2 如果-否则-如果