2

user1598186がここで彼の質問で述べたのと同じ問題があります:p:commandButtonが<ui:include>ページでbeanのメソッドを呼び出さない

ただし、解決策は示されていません(彼は<ui:include>タグを完全に削除し、代わりに変数を使用しました)

<ui:include>commandButton内で呼び出しているときに、バッキングBeanのメソッドを使用して実行する方法はありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

3

EL 2.2 メソッド パラメーター (したがって、#{bean.method()}代わりに) を使用して、commandButton の属性で#{bean.method}使用できるメソッド シグネチャを渡すことができます。actionListener以下は、ManagedBean プロパティを渡し、メソッド シグネチャを渡す例です。

メインページ

<ui:include src="/jointeam.xhtml">
  <ui:param name="propertyValue" value="#{managedBean.property1} />
  <ui:param name="method" value="#{managedBean.performAction()}" />
</ui:include>

jointeam.xhtml

...

<h:inputText value="#{propertyValue}" />

...

<p:commandButton value="Submit" actionListener="#{method}" />

コードの再利用という点でこれがいかに強力であり、多くの場合、複合コンポーネントよりも冗長性が低く、使いやすいことがわかります。

于 2013-02-19T12:41:38.943 に答える