primefaces ライブラリのチェックボックス データテーブルが機能しません。primefaces のショーケースと同じコードを作成しようとしましたが、いくつかの行をチェックして表示ボタンをクリックすると、selectedCars[] に 0 行が含まれています: これが私の xhtml です。ページ :
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>TODO supply a title</title>
</h:head>
<h:body>
<h:form id="form">
<p:dataTable id="multiCars" var="car" value="#{fortest.mediumCarsModel}" paginator="true" rows="10"
selection="#{fortest.selectedCars}">
<f:facet name="header">
Checkbox Based Selection
</f:facet>
<p:column selectionMode="multiple" style="width:18px" />
<p:column headerText="id">
#{car.id}
</p:column>
<p:column headerText="date envoi">
#{car.dateEnvoi}
</p:column>
<p:column headerText="decision" >
#{car.decision}
</p:column>
<f:facet name="footer">
<p:commandButton id="multiViewButton" value="View" icon="ui-icon-search"
update=":form:displayMulti" oncomplete="multiCarDialog.show()"/>
</f:facet>
</p:dataTable>
<p:dialog id="multiDialog" header="Car Detail" widgetVar="multiCarDialog"
height="300" showEffect="fade" hideEffect="explode">
<p:dataList id="displayMulti"
value="#{fortest.selectedCars}" var="selectedCar">
id : #{selectedCar.id}, dateEnvoi #{selectedCar.dateEnvoi}
</p:dataList>
</p:dialog>
</h:form>
</h:body>
</html>
ここに私のマネージドBeanがあります:
@ManagedBean
@SessionScoped
public class fortest implements Serializable {
private Commande[] selectedCars;
private dortestDataModel mediumCarsModel;
utilisateursHelper uh;
/**
* Creates a new instance of fortest
*/
public fortest() {
uh = new utilisateursHelper();
mediumCarsModel = new dortestDataModel(uh.getAllCommandes());
}
public void setSelectedCars(Commande[] selectedCars) {
System.out.println("alors je suis donc la size : "+selectedCars.length);
this.selectedCars = selectedCars;
}
public Commande[] getSelectedCars() {
return selectedCars;
}
public dortestDataModel getMediumCarsModel() {
return mediumCarsModel;
}
}
ここに私の dataModel があります:
public class dortestDataModel extends ListDataModel<Commande> implements SelectableDataModel<Commande> {
utilisateursHelper uh;
public dortestDataModel() {
}
public dortestDataModel(List<Commande> data) {
super(data);
uh = new utilisateursHelper();
}
@Override
public Commande getRowData(String rowKey) {
//In a real app, a more efficient way like a query by rowKey should be implemented to deal with huge data
List<Commande> cars = (List<Commande>) uh.getAllCommandes();
for(Commande car : cars) {
if(car.getId().equals(rowKey))
return car;
}
return null;
}
@Override
public Object getRowKey(Commande car) {
return car.getId();
}
}
何か考えはありますか、事前にありがとう