[英]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.