我有一个声明组件,我有一个链接,点击一个链接我调用一个动作监听器,我将这个动作监听器映射到我的主应用程序托管bean但是我一直收到点击链接的错误
<MethodExpressionActionListener> <processAction> Received 'javax.el.PropertyNotFoundException' when invoking action listener '#{comp.handleTreeNodeClick}' for component 'dc_cl1'
<MethodExpressionActionListener> <processAction> javax.el.PropertyNotFoundException: Application2/ViewControllerWebApp.war/Home.jsf @14,92 TreeNodeClick="#{backingBeanScope.Home.navigationTreeLinkClicked.execute}": The class 'view.backing.Home' does not have the property 'navigationTreeLinkClicked'.
以下是我的代码。
我的声明性组件
<af:commandLink text="#{node.CONTENT_NAME}" id="dc_cl1"
inlineStyle="height:inherit; width:150px;"
actionListener="#{comp.handleTreeNodeClick}">
<f:attribute name="param" value="#{node.CONTENT_URL}"/>
</af:commandLink>
#{node.CONTENT_URL}
TreeNodeClick
是我在创建声明性comp时创建的方法<f:attribute>
TreeNodeClick(javax.faces.event)
现在我在我的主应用程序中使用它并将此函数映射到void getNavigationTreeLinkClicked(ActionEvent actionEvent)
此方法存在于我的Main App bean类中。
我想访问 param值,但我一直收到上述错误。
我的getNavigationTreeLinkClicked()
方法正文如下
public void getNavigationTreeLinkClicked(ActionEvent actionEvent) {
System.out.println("node clicked");
String param = (String) actionEvent.getComponent().getAttributes().get("param");
System.out.println(param);
}
但由于我的错误提示我的组件TreeNodeClicked
func未映射到navigationTreeLinkClicked
。
请帮我解决这个错误,以及如何获取该参数值。
答案 0 :(得分:0)
您的Action Listener方法名称不正确。它应该是:
public void navigationTreeLinkClicked(ActionEvent actionEvent) {...}