저는 primefaces 데이터 테이블을 가지고 있습니다. 데이터베이스에서 채 웁니다. 필드 중 하나는 확인란으로 표시되는 부울 값입니다. 확인란을 선택하거나 선택 취소하면 변경 사항을 다시 데이터베이스에 저장할 수 있습니다.JSF 데이터베이스 테이블의 행을 데이터베이스에 저장할 수 없습니다.
저장하려는 행의 현재 값을 관리 빈에 전달하려고 시도했지만 새 값의 확인란이 현재 행 객체에 반영되지 않았습니다. 변경 내용을 DB에 성공적으로 저장할 수 있도록 현재 행 개체에 변경 내용을 적용하려면 어떻게해야합니까?
내가 지금하고있는 일은 ... 필요한 것을 제공하려고 노력했습니다. 정보가 너무 많거나 너무 적 으면 알려주세요. 감사.
@ManagedBean(name = "itemManagerBean")
@ViewScoped
public class ItemManagerBean implements Serializable {
...
public ArrayList<Item> getAllItemsForUser() {
List list = ecf.findByPartyId(user.getPartyId());
ArrayList<Item> itemList = new ArrayList<>(list);
return (itemList);
}
...
public String saveItem(Item item){
System.out.println(item.toString());
ecf.updateRecord(item);
return (null);
}
}
//item class
public class Item {
private BigInteger itemId;
private String name;
priave boolean saleable; //database column is not null
//getters and setters
}
//facelet
<h:form>
<p:dataTable id="id_itemList"
var="item"
value="#{itemManagerBean.allItemsForUser}" >
<p:column headerText="ID">
<h:outputText value="#{item.itemId}" />
</p:column>
<p:column headerText="Name">
<h:outputText value="#{item.name}" />
</p:column>
<p:column headerText="Saleable" >
<p:selectBooleanCheckbox value="#{item.saleable}" />
</p:column>
<p:column width="15" >
<p:commandButton id="id_saveRowButton" icon="ui-icon-disk"
title="Save" action="#{itemManagerBean.saveItem(item)}"/>
</p:column>
</p:dataTable>
</h:form>