Val*_*lva 4 java mysql jsf jpa jsf-2
我正在使用JSF 2和JPA 2(EclipseLink 2.3)开发一个项目.在JSF 2中,我了解到我们必须将模型与Controller分开,并将相同的东西分离到View(感谢BalusC).但是现在有了JPA生成的POJO,我想知道豆子,模型,它现在应该是pojos.
我的观点是我的.xhtml页面,用JSF 2.0开发,它将与我的控制器交互,然后在控制器中调用DAO的类,然后在我的数据库中运行.
这是正确的吗 ?我的意思是在MVC的概念?我想做正确的事,任何提示?
提前致谢.
"MVC"在JSF中有多种观点.从高级视图来看,Model由EJB/JPA表示,最终由DAO/DTO表示(如果有的话).View由您自己的JSF代码(由托管bean和Facelets模板构成)表示.财务主任由代表FacesServlet.
从低级视图(高级视图的进一步细分),模型由实体或DTO表示.视图由Facelets模板表示.Controller由托管bean表示.它基本上是M(MVC)C.
请注意,"POJO"是旧J2EE/Hibernate时代的一个相当传统的术语.如今,使用Java EE/JPA,它们被称为"实体".是的,那是@EntityJavabeans.Als注意到有些人可能会选择使用普通的香草DTO而不是将你的JSF代码与服务层分离的实体.然后,JSF应该使用这些DTO作为模型,服务层应该在这些DTO和真实实体之间进行映射.这在我看来没有必要.EJB3/JPA2是一个非常流畅的API,它已经最大限度地减少了许多样板代码,你可以像在旧的J2EE时代那样使用DAO/DTO.使用Java EE 6及更高版本,并不需要能够将服务层切换到例如Spring.一切都经过深思熟虑和标准化.