2012-06-11 35 views
0

我試圖在dataTable的行被粘連時使用IceFaces(+ Jboss AS7上的Seam 3框架)「ice:rowSelector」標籤,該行中的數據將顯示在帶有「ice:outputLabel」的「ice:panelGrid」標籤中。將參數傳遞給<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)}」,並且該方法被稱爲BUT「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 

我的問題是:我應該作爲ClickActionEvent參數傳遞給「selectionListener」方法?

回答

1

我該如何將ClickActionEvent參數傳遞給 「selectionListener」方法?

通過RowSelectorEvent

+0

像在clickListener =「#categoryController.selectionListener(rowSelectorEvent)}」? 它返回我NullPointerException就像clickActionEvent。 ? – kauedg

+0

不,在支持bean中,您將RowSelectorEvent定義爲參數類型。而不是clickListener嘗試'selectionListener =「#{categoryController.selectionListener}」'。希望這可以幫助。 – JMelnik

+0

Allright,將方法參數從ClickActionEvent更改爲RowSelectorEvent,並使用selectionListener =「#{categoryController.rowSelectionListener}」調用它。 雖然我的NetBeans IDE「抱怨」categoryController.rowSelectionListener是未知屬性。 如果可能,我想知道如何滿足IDE以及點擊和選擇器偵聽器之間的區別。 非常感謝您! – kauedg

相關問題