在JSF和JPA项目中使用POJO作为模型,是吗?

2024-04-06

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

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

这是正确的吗 ?我的意思是MVC 的概念? 我想把一切都做好,有什么建议吗?

提前致谢。


“MVC”在 JSF 中有多种观点。从高层视图来看,模型由 EJB/JPA 和最终的 DAO/DTO(如果有)表示。视图由您自己的 JSF 代码(由托管 bean 和 Facelets 模板组成)表示。控制器由FacesServlet.

从低层视图(高层视图的进一步细分)来看,模型由实体或 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 是什么组件? https://stackoverflow.com/questions/5104094/what-components-are-mvc-in-jsf-mvc-framework
  • DTO、VO、POJO、JavaBean 之间的区别? https://stackoverflow.com/questions/1612334/difference-between-dto-vo-pojo-javabeans
  • 我发现JPA,或者类似的,不鼓励DAO模式 https://stackoverflow.com/questions/2100115/i-found-jpa-or-alike-dont-encourage-dao-pattern
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在JSF和JPA项目中使用POJO作为模型,是吗? 的相关文章

随机推荐