繁体   English   中英

实体 POJO 作为 Struts 2 中的 Action 类

[英]Entity POJO's as Action classes in Struts 2

我在一个项目中有大约 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";
}}

这是不受欢迎的事情而不是标准的编码实践吗? 如果是这样,为什么?

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

无论您是否使用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";
  }
}

您不能在 Struts 2 中使用实体 POJO 作为Action类。因为它们由 Hibernate 管理,而Action对象由 Struts 2 管理,并且它们具有不同的生命周期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM