2012-06-11 2 views
0

dataTable의 행이 cliked 될 때 IceFaces (Jboss AS7의 + Seam 3 Framework) "ice : rowSelector"태그를 사용하려고합니다. 해당 행의 데이터는 "ice : panelGrid"태그에 "ice : outputLabel"과 함께 표시됩니다.매개 변수를 <ice : rowSelector>의 clickListener 속성에 전달합니다.

이 같은 주위 몇 가지 예에서와에 ClickListener을 설정하고 있습니다 :

<ice:rowSelector immediate="true" clickListener="#{categoryController.selectionListener}"/> 

방법은 다음과 같습니다

public void selectionListener(ClickActionEvent clickActionEvent) { 

    selectedCategory= categories.get(clickActionEvent.getRow()); 
} 

List<Category> categories 

그러나 때 "범주"인 내가 응용 프로그램을 테스트하면 javax.el.MethodNotFoundException 예외가 발생합니다. 그런 다음 "()"을 메서드 호출에 추가합니다 (clickListener = "# {categoryController.selectionListener()}"). 동일한 예외가 발생합니다.

마지막으로 clickListener = "# {categoryController.selectionListener (clickActionEvent)}"를 설정하고 메서드가 호출되지만 "clickActionEvent"는 NullPointException을 발생시킵니다. 관련 부분은 다음과 같습니다

Caused by: javax.el.ELException: /showCategory.xhtml @20,114 clickListener="#{categoryController.selectionListener(clickActionEvent)}": java.lang.NullPointerException 
     at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:111) [jsf-impl-2.1.7-jbossorg-2.jar:] 
     at com.icesoft.faces.component.facelets.MethodExpressionMethodBinding.invoke(IceComponentHandler.java:231) [icefaces-compat-3.0.1.jar:] 
     at com.icesoft.faces.component.ext.RowSelector.broadcast(RowSelector.java:530) [icefaces-compat-3.0.1.jar:] 
     at org.icefaces.impl.component.UISeriesBase.broadcast(UISeriesBase.java:481) [icefaces-3.0.1.jar:] 
     at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final] 
     at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:935) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final] 
     at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78) [jsf-impl-2.1.7-jbossorg-2.jar:] 
     ... 29 more 
Caused by: java.lang.NullPointerException 

내 질문은 : 나는 "selectionListener"방법 ClickActionEvent 매개 변수로 무엇을 전달해야?

답변

1

"selectionListener"메서드의 ClickActionEvent 매개 변수로 전달해야하는 항목은 무엇입니까?

패스 RowSelectorEvent.

+0

clickListener = "# categoryController.selectionListener (rowSelectorEvent)}"와 유사합니까? clickActionEvent와 마찬가지로 NullPointerException을 반환합니다. ? – kauedg

+0

아니요, Backing Bean에서 매개 변수 유형으로 RowSelectorEvent를 정의합니다. 그리고 clickListener 대신'selectionListener = "# {categoryController.selectionListener}"'를 시도하십시오. 희망이 도움이됩니다. – JMelnik

+0

Allright, 메서드 매개 변수를 ClickActionEvent에서 RowSelectorEvent로 변경하고 selectionListener = "# {categoryController.rowSelectionListener}"로 호출하면 트릭을 수행했습니다. NetBeans IDE에서 "categoryController.rowSelectionListener"가 알 수없는 속성 인 경우 "불평"하지만. 가능한 경우 IDE를 만족시키는 방법과 클릭 및 선택기 수신기 간의 차이점을 알고 싶습니다. 대단히 감사합니다! – kauedg

관련 문제