0

JSFコードでは、次のように表示されます。

...

<h:selectOneMenu id="clientCode" value="#{theBean.clientCodeSelection}">
  <f:selectItem itemValue="" itemLabel="Please select one" />
  <f:selectItems value="#{theBean.clientList}" />
  <f:ajax render="go"/>
</h:selectOneMenu>

...

<h:commandButton id="go" value="Go" immediate="true" >
  <f:ajax render="clientTable" event="click" listener="#{theBean.doSearch}"></f:ajax>
</h:commandButton>

実際に何をしているのかわかり<f:ajax render="go"/>ますか?私の最初の想定は、 [実行]ボタンをレンダリングすることですが、私が思うほど厳密には進んでいないと思います。私が間違っている場合は訂正してください。

4

2 に答える 2

3

は、ウェブブラウザでajaxリクエストが正常に完了する<f:ajax render="go">と、JSFコンポーネントの生成されたHTML表現を相対クライアントIDで更新します。go基本的に、相対クライアントIDgoを持つJSFコンポーネントは、WebサーバーのJSFコンポーネントツリーに配置されて実行されます。その後、生成されたHTML出力はajax応答になります。ajax応答がWebブラウザーに返されると、まさにこのHTML出力がWebブラウザーのHTMLDOMツリーで更新されます。これは、JSFコンポーネントが、送信されたフォームデータに基づいてリクエストごとに異なるHTMLコンテンツを生成できる場合に非常に役立ちます。

これは、JSFコンポーネントが常にrendered="false"レンダリングされる場合にのみ機能することに注意してください(つまり、JSFコンポーネント自体またはその親がありません)。

あなたの特定の例では、基本的に、生成されたHTML表現には、要求ごとに変更される可能性のあるものは何もありません。したがって<f:ajax render="go">、この特定のケースでは、一見完全に役に立たないようです。たとえば、使用可能なアイテムのリストが現在のドロップダウンの選択されたアイテムに依存する2番目のドロップダウンがある場合<f:ajax render>、現在のドロップダウンを変更すると新しいアイテムで更新されるように、で参照するのが理にかなっています。

于 2012-09-13T11:08:07.033 に答える
0

ここでは何もしませんが、あるレンダリング条件でcommandButtonを表示したい場合は、それが使用されます...

于 2012-09-13T05:23:18.357 に答える