CrD 기능을 사용하여 JSF에서 간단한 애플리케이션을 빌드하고 있습니다. tomahawk 구성 요소를 사용하여 편집 기능을 구현하려고합니다. 행을 내 백업 bean에서 검색 할 수 없습니다.backing bean에서 HTML DataTable에 액세스하는 동안 예외가 발생했습니다.
가 가 public void editCar(ActionEvent event) {
System.out.println("Row number ## " + _selectedRowIndex.toString() + " selected!");
System.out.println("Datatable ::"+ dataTable);
System.out.println("Row Count ::" + dataTable.getRowCount());
dataItem = (SimpleCar) getDataTable().getRowData();
//selectedCar = (SimpleCar) _list.get(Integer.parseInt(_selectedRowIndex.toString()));
selectedCar = (SimpleCar) dataTable.getRowData();
System.out.println(dataTable.getRowData());
}
이 SimpleCar.java 내 DTO {데이터 전송 개체}가
을 포함 :
<t:dataTable id="data"
binding="#{selectOneRowList.dataTable}"
styleClass="scrollerTable"
headerClass="standardTable_Header"
footerClass="standardTable_Header"
rowClasses="standardTable_Row1,standardTable_Row2"
columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
var="car"
value="#{selectOneRowList.list}"
sortColumn="#{selectOneRowList.sortColumn}"
sortAscending="#{selectOneRowList.sortAscending}"
preserveDataModel="false"
preserveSort="true"
preserveRowStates="true"
rows="10"
>
<h:column>
<f:facet name="header">
<h:outputText value="Select"/>
</f:facet>
<t:selectOneRow groupName="selection" id="hugo" value="#{selectOneRowList.selectedRowIndex}"
onchange="submit();" immediate="true"
valueChangeListener="#{selectOneRowList.processRowSelection}"/>
</h:column>
<h:column>
<f:facet name="header">
</f:facet>
<h:outputText value="#{car.id}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Cars" />
</f:facet>
<h:outputText value="#{car.type}" />
</h:column>
<t:column sortable="true">
<f:facet name="header">
<h:outputText value="Color" />
</f:facet>
<h:outputText value="#{car.color}" />
</t:column>
</t:dataTable>
가 여기 내 백업 콩 SelectOneRowList.java입니다 :
여기 내 JSP 파일 싹둑입니다 변수 ID, 유형, 색상 및 해당 setter/getter.
dataItem 변수의 형식은 "SimpleCar"입니다. dataTable은 HTMLDataTable 유형입니다. 첫 3 SOP는 얻을 수 있지만 4 SOP는 인쇄되지 않습니다. 내가 서버에 다음과 같은 예외가 나타납니다
javax.faces.el.EvaluationException : 예외 동안 호출 식 # {selectOneRowList.editCar} org.apache.myfaces.el.MethodBindingImpl.invoke (MethodBindingImpl.java : 156) javax.faces.component.UICommand.broadcast (UICommand.java:89) : 171) org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute (InvokeApplicationExecutor.java:32) org.apache.myfaces.lifecycle.LifecycleImpl.executePhase (LifecycleImpl.java:95) org.apache.myfaces.lifecycle.LifecycleImpl.execute (LifecycleImpl.java:70) javax.faces.webapp.FacesServlet.service (FacesServlet.java:139) org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter (ExtensionsFilter.java:341)
편집 버튼을 클릭하면 내 Backing bean의 editCar 메소드가 호출됩니다. 내 백킹 빈에서 선택된 행의 데이터를 가져와야합니다. 예외가 발생하는 이유는 무엇입니까?
위의 예는 웹 사이트에 배포 된 tomawhawk 예제 WAR에서 발췌 한 것입니다. 나는 BalusC에 그들을 포함하여 많은 연결을 통해 갔다 그러나 그들 중 아무도는 도왔다.
감사합니다, 당신은 데이터 테이블에서 editCar()
에 연결된 버튼을 넣어야 할 것 DataTable.getRowData()