我将 JSF 2 与 PrimeFaces 一起使用,并且我的 facelet 具有调用通过 ui:param 传入的 bean 上的方法的 commandLinks(或 commandButtons)。
我的 facelet xhtml 期望dialogBean
作为ui:param
<h:panelGroup>
<p:commandButton
value="#{msgs.ok}"
actionListener="#{dialogBean.okClicked}"
process="#{dialogId}"
update="#{dialogId}, #{externalIdsToUpdateOnOk}"
styleClass="dialogBottomBtn"
/>
<p:commandButton
value="#{msgs.cancel}"
actionListener="#{dialogBean.close}"
process="@this"
update="#{dialogId}"
styleClass="dialogBottomBtn"
/>
</h:panelGroup>
facelet 是这样包含的:
<ui:include src="/faces/common/dialogButtons.xhtml">
<ui:param name="dialogId" value="textBlockQuestionDialog" />
<ui:param name="dialogBean" value="#{formEditor.textBlockQuestionDialog}" />
<ui:param name="externalIdsToUpdateOnOk" value=":form:tree, :form:properties, :form:preview" />
</ui:include>
它失败并出现此错误:
javax.el.PropertyNotFoundException: Target Unreachable,
identifier 'dialogBean' resolved to null
我试过用定义为参数替换,没有任何 #{dialogBean.close}
帮助#{dialogBean['close']}
。#{dialogBean[action]}
action
dialogBean
h:outputText
与类似的输出一起使用时会得到解决。此外,当我替换actionListener
为action
.
有什么想法吗?