实体 POJO 作为 Struts 2 中的 Action 类

问题描述 投票:0回答:1

我的项目中有大约 12 个表,我希望使用 Hibernate 来实现数据库目的。

是否必须使用

ModelDriven
接口将每个 POJO 映射到一个类(总共 12 个类)?

我不能只使用 POJO 类本身来映射表单中的每个字段吗?

例如:

public class Xyz{
@Id
private int sno;
private String xyz;
//getters setters
public String execute(){
// Hibernate code
return "success";
}}

这是令人不悦的事情,而不是标准的编码实践吗?如果是这样,为什么?

java hibernate jpa struts2 pojo
1个回答
0
投票

视图层上使用的模型并不总是您的业务模型,但它应该反映生成输出所需的数据。

无论您是否使用

ModelDriven
,您都需要一个视图模型。您可以为其使用操作类或将模型聚合到操作中,类似于
ModelDriven
但不实现此接口,因此放弃
modelDriven
拦截器

例如您的班级可以更改为

public class XyzAction extends ActionSupport {

  private Xyz model = new Xyz();

  public Xyz getModel(){ return model;}

  public String execute(){
    // Hibernate code
    Xyz xyz = session.get(Xyz.class, id);
    //populate the model
    model.setSno(xyz.getSno());
    model.setXyz(xyz.getXyz());

    return "success";
  }
}

您不能将实体 POJO 用作 Struts 2 中的

Action
类。因为它们由 Hibernate 管理,但
Action
对象由 Struts 2 管理,并且它们具有不同的生命周期。

© www.soinside.com 2019 - 2024. All rights reserved.