私は PrimeFaces で JSF 2 を使用しています。私の 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
param として定義された に置き換えてみましたが、何も役に立ちませ んでした#{dialogBean.close}
。#{dialogBean['close']}
#{dialogBean[action]}
action
dialogBean
および同様h:outputText
の出力で使用すると解決されます。また、この例は に置き換えるactionListener
と機能しaction
ます。
アイデアはありますか?