p:datatable で複数の値の選択を使用してこのリンクをたどりました
http://www.primefaces.org/showcase/ui/datatableRowSelectionRadioCheckbox.jsf
そこから複数の値を選択してフォームのボタンをクリックすると、正常に動作している Bean のメソッドが呼び出されますが、選択された値のリストは空です。ここの投稿を読みましたが、解決策がわかりません。別の方法も試しましたが、うまくいきませんでした。
JSF コード:
<p:dataTable value="#{deviceController.devicesModel}" var="deviceList" widgetVar="deviceTable" selection="#{deviceController.selectedDevices}>
<p:column sortBy="#{deviceList.manufacturerSerialNum}" filterBy="#{deviceList.manufacturerSerialNum}">
<f:facet name="header">
<h:outputText value="Manufacturer Serial No"/>
</f:facet>
<h:outputText value="#{deviceList.manufacturerSerialNum}" />
</p:column>
<p:column selectionMode="multiple">
<f:facet name="header">
<h:outputText value="#{bundle.ListLaptopTitle_inService}"/>
</f:facet>
</p:column>
</p:dataTable>
<p:commandButton action="#{deviceController.update(deviceController.selectedDevices)}" value="Submit Request" style="margin-top: 20px"/>
Bean のコード:
public String update(List updateDevice) {
try {
for(Device d:updateDevice)
{
getFacade().edit(d);
}
//message which indiactes device update is successful
return "/example.html";
} catch (Exception e) {
//handling exception
return null;
}
}
したがって、ページから、チェックすると空である deviceController.selectedDevices の値を渡しています。
ありがとう