2013-12-17 1 views
0

테이블이 selectionMode="multiple" 일 때 <h:commandLink />이 프라임 내면 <p:dataTable /> 안에 있어야합니다. 여기 내 모의 코드가있다.primefaces 데이터 테이블 내부에서 Jsf - <h : commandLink />

<h:form id="myform"> 
    <p:dataTable id="myTable"> 
     <f:facet name="header"> 
     <h:commandLink value="Delete" /> 

     </f:facet> 
     <p:column selectionMode="multiple" /> 
     .... 
     .... 
    </p:dataTable> 
</h:form> 

<h:commandLink />datatable는 내부 미세 나타낸다. 문제는 내가 Delete 링크를 클릭하면 일부는 NullPointerException 보여줍니다 발생합니다. 다음은 오류 코드입니다. 나는 <p:column selectionMode="multiple" /> 또는 설정 selectionMode="single"을 제거한 후 delete을 클릭하면

HTTP Status 500 - 

type Exception report 

message 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:606) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
root cause 

java.lang.NullPointerException 
    org.primefaces.component.datatable.feature.SelectionFeature.decodeMultipleSelection(SelectionFeature.java:51) 
    org.primefaces.component.datatable.feature.SelectionFeature.decode(SelectionFeature.java:40) 
    org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:60) 
    javax.faces.component.UIComponentBase.decode(UIComponentBase.java:787) 
    org.primefaces.component.api.UIData.processDecodes(UIData.java:232) 
    javax.faces.component.UIForm.processDecodes(UIForm.java:225) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176) 
    org.primefaces.component.tabview.TabView.processDecodes(TabView.java:317) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1176) 
    javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:933) 
    com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) 
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs. 

Apache Tomcat/7.0.47 

는 페이지가 다시 다시로드됩니다. 내 템플릿 프로젝트에만 이러한 액션 단계를 원합니다.

어디서 잘못 되었나요?

+1

[http://www.primefaces.org/showcase/ui/datatableRowSelectionMultiple.jsf]를 참조하면 selectionMode가 기둥. 또한,'selection' 속성은 보이지 않는 것 같습니다 - 관리 빈 코드는 어떻게 생겼습니까? –

답변

0

선택을 "multiple"로 설정할 때 arraylist는 선택된 행을 저장하여 백킹 빈에 사용합니다. 따라서 삭제를 클릭하면 작업이 생성되고 목록을 비우는 것은 아무 것도 선택하지 않기 때문에 발생하는 오류입니다. 우리가 이것을 빨리 통과 할 수 있도록 사용중인 Plz 코드.

관련 문제