【发布时间】:2013-03-03 08:37:39
【问题描述】:
我正在尝试将操作参数传递给页面中的部分视图,但由于某种原因,它说我的参数是 null,即使它是在外部页面中使用的 bean。
页面:
<ui:include src="/templates/common/ajaxConfirmPopup.xhtml">
<ui:param name="bean" value="#{paginaBean}" />
<ui:param name="action" value="deleteAll" />
</ui:include>
在部分中调用动作:
actionListener="#{bean[action]}"
但我得到以下异常:
Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'bean' resolved to null
at org.apache.el.parser.AstValue.getTarget(AstValue.java:98) [jbossweb-7.0.13.Final.jar:]
at org.apache.el.parser.AstValue.invoke(AstValue.java:244) [jbossweb-7.0.13.Final.jar:]
at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) [jbossweb-7.0.13.Final.jar:]
我做错了吗?
注意:当方法有ActionEvent参数时一切正常,当方法没有参数时它不起作用。
【问题讨论】:
-
原来使用“action”而不是“actionListener”使它工作,这解决了我的问题。我不知道为什么它对 actionListener 不起作用。
-
如果
deleteAll方法有ActionEvent参数,你能检查这是否有效?我想我以前有时会遇到这种情况,这解决了问题。当使用ui:param传递 bean 时,这样的方法不适用于无参数方法。 -
是的,id 可以!但我有其他方法作为 actionListeners,它们无需任何参数即可工作。即:如果我不使用包含的视图,则相同的方法适用于 actionListener(并且没有参数)。