6

jquery ajaxサーバーリクエストを使って直接jsfマネージドbeanメソッド(AjaxBehaviorEvent型パラメータ:f:ajaxを使ったときと同じ)を起動する方法があれば知りたいです。サーバー側フレームワークとして Java EE で jquery ajax を使用する例は見つかりませんでした。見つかったすべての例は php でした。他の回避策は、クライアント側でjqueryを使用して送信されるcommandLinkを作成し、その呼び出しを介してパラメーターを渡すことだと思いますが、前者のソリューションを好み、それが機能することを望みます。

助けてくれてどうもありがとう!

4

3 に答える 3

6

jQueryajaxリクエストとJSFajaxリクエストは異なるjsライブラリを使用していますが、それらを混ぜすぎても意味がないと思います...

jQueryからJSFマネージドBeanアクションを起動したい場合はh:commandButton、その目的のために非表示を使用する方がよいでしょう...

JSF:

<h:commandButton id="someId" action="#{someBean.someMethod}" style="display:none">
    <f:ajax render="someId" execute="someId"/>
</h:commandButton>

さらに非表示の引数を渡したい場合は、非表示のJSFコンポーネントIDをhiddenh:commandButton execute属性に追加できます。これにより、対応するプロパティがサーバー側で更新されます...

js

$("#someId").click();

一方、jQuery呼び出しに対応するサーブレットでマネージドBeanデータを使用する場合は、次のように、いつでもそのJSFマネージドデータにアクセスできます。JSF-名前でマネージドBeanを取得する

于 2013-01-23T09:40:05.273 に答える
3

islandguy が指摘したのと同じように、Primefaces を使用する場合は、<p:remoteCommand/>次のようにコマンドを使用します。

<script type="text/javascript">
      doAwesomeness();
</script>

と :

 <p:remoteCommand name="doAwesomeness" 
          actionListener="#{awesomeBean.awesomeMethod}"
          oncomplete="jsToExecuteOnAjaxSuccess()" />

お役に立てれば..

于 2014-04-19T03:57:53.323 に答える