在JSF和JPA项目中使用POJO作为模型是正确的



我正在开发一个使用JSF 2和JPA 2 (EclipseLink 2.3)的项目。在JSF 2中,我了解到我们必须将模型与控制器分开,并将同样的事情与视图分开(感谢BalusC)。但是现在有了从JPA生成的POJO,我想知道bean,模型,现在是否应该是POJO。

我的视图将是我的。xhtml页面,在JSF 2.0中开发,它将与我的控制器交互,然后在控制器中调用DAO的类,然后在我的数据库中操作。

这样对吗?我是说MVC的概念?我想把每件事都做好,有什么建议吗?

从低级视图(高级视图的进一步细分)来看,模型由实体或dto表示。视图由Facelets模板表示。控制器由您的托管bean表示。它基本上是一个M(MVC) c。

注意"POJO"是旧J2EE/Hibernate时代遗留下来的一个术语。现在,在Java EE/JPA中,它们被称为"实体"。是的,就是那些@Entity爪哇人。还要注意,有些人可能会选择使用普通的dto,而不是将JSF代码与服务层解耦的实体。然后,JSF应该使用这些dto作为模型,服务层应该依次在这些dto和实际实体之间进行映射。我认为这是没有必要的。EJB3/JPA2是一个相当漂亮的API,它已经将大量的样板代码最小化了,而在旧的J2EE时代,您可能会使用dao/dto。对于Java EE 6及更高版本,实际上并不需要能够从服务层切换到Spring。一切都是经过深思熟虑和标准化的。

参见:

  • JSF MVC框架中的MVC组件是什么?
  • DTO, VO, POJO, JavaBeans之间的差异?
  • 我发现JPA,或类似的,不鼓励DAO模式

不完全正确。通常最好避免在视图中直接引用模型对象;您可以用DTO(数据传输对象)代替它们,DTO仅用于包含要显示的数据

在我看来,这是不正确的。XHTML页面是视图,而控制器是JSF servlet(框架已经提供了),而所谓的"控制器"实际上是模型(业务逻辑)。JPA pojo是模型(数据模型)的一部分。

您应该从视图中调用业务逻辑来获得结果(作为JPA pojo),并在视图中直接使用它们(在您的体系结构中不需要转换为DTO)。

在你的模型中,你可以按照你的意愿组织业务逻辑(如果你认为你需要一个DAO层,这在行业中很常见,你可以把它放进去)。

相关内容

  • 没有找到相关文章

最新更新