目前我正在调用EJB 3
Session Beans JSF 2
.但是,我不确定我是否应该将JSF托管bean传递给EJB?
假设表单上的任何内容(以及支持bean)都是我需要通过EJB层持久化的所有东西,我应该手动将所有属性克隆到传输对象中,还是有更好的方法来做到这一点?
但是,支持bean POJO
使用JSF生命周期标记(例如@ManagedBean
)进行了大量注释,并且驻留在Web project
EJB单独驻留在其中的时候EJB project
.
听起来好像你已经将模型与控制器紧密耦合,就像大多数基本的JSF教程所示.您应该将模型从控制器分离到它自己的类中.当你使用EJB时,你也在使用JPA(EJB如何对持久性真正有用?),你可以只使用现有的JPA @Entity
类作为模型.
例如
@Entity
public class Product {
@Id
private Long id;
private String name;
private String description;
private Category category;
// ...
}
Run Code Online (Sandbox Code Playgroud)
同
@ManagedBean
@ViewScoped
public class ProductController {
private Product product;
@EJB
private ProductService service;
public void save() {
service.save(product);
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
哪个用作
<h:form>
<h:inputText value="#{productController.product.name}" />
<h:inputTextarea value="#{productController.product.description}" />
<h:selectOneMenu value="#{productController.product.category}">
<f:selectItems value="#{applicationData.categories}" />
</h:selectOneMenu>
<h:commandButton value="Save" action="#{productController.save}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3028 次 |
最近记录: |