ViewA.xhtmlにバインドされたBeanAとViewB.xhtmlにバインドされたBeanBがあると想像してください。BeanAとBeanBは、Beanごとに1つの属性「Objectobj;」を持つバッキングBeanです。ゲッターとセッターで。
今、私はViewAで次のことを行っています。
<ui:repeat value="#{someOtherBean.listOfObjects}" var="objSelected">
<h:commandLink value="someValue" action="ViewB">
<f:setPropertyActionListener target="#{beanB.obj}" value="#{objSelected}" />
</h:commandLink>
</ui:repeat>
これはうまくいきます!リストを反復処理すると、(commandLinkを介して)クリックしたオブジェクトがBeanBに設定されます。
問題:GETリクエストを処理する必要があるため、h:linkまたはh:outputLinkを使用する必要があります(ところで、違いはどこにありますか?)。ただし、そうすると、GETリクエストはアクションイベントを発生させないため、f:setPropertyActionListenerコンポーネントを使用できません。
アクションイベントがないため、GETリクエストを使用して、オブジェクトのIDをBeanBにパラメーターとして指定する必要があります。次に、BeanBはdaoを使用して、指定されたIDを持つオブジェクトを取得します。しかし、このサックス。ダオは使いたくない。だから私の特定の質問:
GETリクエストリンクのf:setPropertyActionListenerに相当するものは何ですか?ah:linkまたはh:outputLinkコンポーネントをクリックしたときにBackingBeanのプロパティを設定するにはどうすればよいですか?
解決策があるといいのですが、よろしくお願いします。