我正在做一个使用jpa创建的迷你jsf项目。我已经列出了客户,可以逐个删除它们,但是如果要删除选定的客户,则不能。
这部分来自Costumer类
@Transient
private Boolean selection = false;
这部分来自CostumerBean
Costumer costumer = new Costumer();
private List<Costumer> costumerList = new ArrayList<>();
//(getters and setters)
public void removeSelected() {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
for (Costumer cos : costumerList) {
if (cos.getSelection()) {
em.remove(em.contains(costumer) ? customer : em.merge(costumer));
}
}
em.getTransaction().commit();
musteri = new Musteri();
}
最后是xhtml页面:
<h:form id="firstForm">
<p:commandButton action="#{customerBean.removeSelection}" value="Remove"
update="customerForm">
</p:commandButton>
</h:form id="firstForm">
<h:form id="customerForm">
<p:dataTable value="#{customerBean.customerList}" var="cst"
id="cstTable">
<p:column>
<f:facet name="header">Select</f:facet>
<p:selectBooleanCheckbox value="#{cst.selection}" />
</p:column>
<p:column>
<f:facet name="header">Name</f:facet>
#{cst.name}
</p:column>
</h:form id="customerForm">
我认为实际问题是我无法使Costumer.java中的选择字段为真。我没看到动作。