以下の複合主キーで複数選択(チェックボックス)でprimefacesデータテーブルを使用する際に問題があります
<p:dataTable id="cars" var="car" value="#{setujutolakanpencairan.listmktksppencairan0}"
rowKey="#{car.mktksppencairan0PK}"
selection="#{setujutolakanpencairan.mktksppencairan0s}" >
<p:ajax event="rowSelectCheckbox" process="@this"/>
<p:column selectionMode="multiple" style="width:2%" />
<f:facet name="header">
Click "View" button after selecting multiple to see details
</f:facet>
<p:column headerText="Color">
#{car.vcKeterangan}
</p:column>
<f:facet name="footer">
<p:commandButton value="View" icon="ui-icon-search"
update=":form:display" oncomplete="carDialog.show()" actionListener="#{setujutolakanpencairan.outprint()}"/>
</f:facet>
</p:dataTable>
以下は私のバックビーンです
private List<Mktksppencairan0> listmktksppencairan0;
private Mktksppencairan0[] mktksppencairan0s;
以下は私のゲッターセッターです
public Mktksppencairan0[] getMktksppencairan0s() {
if (mktksppencairan0s != null) {
for (Object asdf : mktksppencairan0s) {
System.out.println("mktksppencairan0s mktksppencairan0s mktksppencairan0smktksppencairan0s =====" + asdf);
}
}
return mktksppencairan0s;
}
public void setMktksppencairan0s(Mktksppencairan0[] mktksppencairan0s) {
this.mktksppencairan0s = mktksppencairan0s;
}
以下はデータを表示するリストです
public List<Mktksppencairan0> getListmktksppencairan0() {
TypedQuery<Mktksppencairan0> query = em.createNamedQuery("Mktksppencairan0.findBybulantahun", Mktksppencairan0.class);
query.setParameter(
"iTahun", mktkontrol.getTahun());
query.setParameter(
"iBulan", mktkontrol.getBulan());
List<Mktksppencairan0> results = query.getResultList();
return results;
}
public void setListmktksppencairan0(List<Mktksppencairan0> listmktksppencairan0) {
this.listmktksppencairan0 = listmktksppencairan0;
}
ここに値をデバッグするために使用した私のアクションがあります
public void outprint() {
System.out.println("asdfasdf ===" + mktksppencairan0s.toString().length());
System.out.println("asdfasdf ===" + mktksppencairan0s.toString());
System.out.println("asdfasdf ===" + mktksppencairan0s);
for (Mktksppencairan0 asdf : mktksppencairan0s) {
System.out.println("mktksppencairan0s mktksppencairan0s mktksppencairan0smktksppencairan0s =====" + asdf.toString().length());
}
}
netbeans デバッガーを使用してデバッグすると、結果 [] または 0 System.out の場合に結果が返されます
INFO: asdfasdf ===[Lcom.infion.web.biaya_marketing.entity.Mktksppencairan0;@a20a9b
INFO: asdfasdf ===64
INFO: asdfasdf ===[Lcom.infion.web.biaya_marketing.entity.Mktksppencairan0;@1f5db6
INFO: asdfasdf ===[Lcom.infion.web.biaya_marketing.entity.Mktksppencairan0;@1f5db6
参考までに、netbeans 7.3、glassfish 3.1.2、primefaces 3.5 を使用しています。
NB:非複合主キー(単一の主キー)とその機能を試してみましたが、別の複合主キーを試しても機能しません