javax.el.MethodNotFoundException:找不到方法:TableBeanDetail@bd4053.onRowSelect()

时间:2012-03-21 23:11:16

标签: jsp jsf primefaces

当我单击每行中出现的数据表中的命令按钮时,我收到以下错误。通过查看示例,我了解到一旦单击了commandbutton,就会先执行以下代码

 <f:setPropertyActionListener value="#{detailRow}" target="#{tableBeanDetail.selectedEntry}" />  

然后是与以下bean方法相关的代码

  <p:commandButton id="detailsButton" actionListener="#{tableBeanDetail.onRowSelect}" icon="ui-icon-
      search" title="View Details">  

在我的onRowSelect中,我正在尝试执行以下操作:

  public String onRowSelect(ActionEvent event) throws Exception {


    // Get key fields from row data and set the parameters that needs to be passed w
             .....
 }

我收到以下错误:

1 个答案:

答案 0 :(得分:8)

actionListener方法应具有以下签名:

public void someMethodName(ActionEvent event) {
    // ...
}

其中ActionEvent属于javax.faces.event个包(因此不是java.awt个包!)。

然而,您返回String并且不清楚您的ActionEvent是否属于正确的套餐。但你似乎想要执行导航。您应该使用action而不是actionListener并删除ActionEvent参数。

public String onRowSelect() {
    // ...
}

另见: