【问题标题】:javax.el.MethodNotFoundException: Method not found: TableBeanDetail@bd4053.onRowSelect()javax.el.MethodNotFoundException:找不到方法:TableBeanDetail@bd4053.onRowSelect()
【发布时间】:2012-04-06 12:52:57
【问题描述】:

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

 <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
             .....
 }

我收到以下错误:

【问题讨论】:

  • 您忘记在问题中包含整个堆栈跟踪。
  • 很高兴收到你的来信,BalusC。我在想我问那些愚蠢的问题可能会惹恼你。我刚刚浏览了您关于使用数据表的文章。你解释的太好了!顺便说一句,我可以通过从 Xhtml 中删除注释标签来解决这个问题,但又遇到了另一个错误。我想让你看看那个错误,但我不确定如何使用 Markdowns 在 cmets 区域进行格式化。我收到错误消息。
  • 只需编辑问题,粘贴堆栈跟踪,选择它并按 Ctrl+K(或编辑器工具栏中的 {} 按钮)将其格式化为代码(基本上是用4 个空格)。
  • 就这么做了。感谢您抽出宝贵时间对此进行研究。

标签: jsp jsf primefaces


【解决方案1】:

actionListener 方法应具有以下签名:

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

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

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

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

另见:

【讨论】:

  • 谢谢BalucS!有用。并感谢您提供这些链接。我需要大量阅读。但确实非常感谢。一个简单的问题,回答问题时,勾号上方的那些数字是什么。我在某处看到两位数的非常高的数字。阿洛斯在这个网站上有什么像我这样的人可以为像你一样的绅士们做的事情总是在那里提供帮助。我的意思是我看到了一个选项卡投票,但我对此了解不多。
  • 每个人都可以点击顶部的箭头“点赞”帖子。例如。当内容对读者有价值和有用时。另一方面,大家也可以点击向下箭头“投反对票”。例如。当内容不好,误导或完全废话时。默认情况下,答案按投票排序,因此无论发布时间如何,最佳答案都会排在首位。另见stackoverflow.com/faq
猜你喜欢
  • 1970-01-01
  • 2018-11-05
  • 2014-01-04
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多