1

私は JSF が初めてで、Java を使用して Web アプリケーションを開発しています。私は基本的に、多くの AJAX コンテンツ (ページネーション、投稿、コメントなど) が読み込まれた、かなり複雑なインターフェイスを開発しています。

基本的な例から始めましょう。ユーザーがコメントを書きます。フォームは JSF f:ajax を介してサーバーに送信され、render="sectionId" を実行できますが、問題は、投稿を表示するだけでなく、下にスライドさせて背景色を切り替えたいことです。

JSF と Javascript を使用してこの種の効果を得るにはどうすればよいですか? デザイナー (HTML/CSS/Javscript/Jquery しか知らない) は、通常、データの文字列を含むページに対して Jquery AJAX 呼び出しを行うだけで、ページは JSON エンコードを生成し、それを使用してすべての処理を行うことができると述べています。マジック。

jqueryでトグル/カラーをどのように行うかを尋ねているのではありません.JSFとJavascriptの間の通信です. では、新しく生成された HTML コードを彼の JavaScript に送信して、彼が望むものを実現するにはどうすればよいでしょうか。

助けてくれてありがとう。

4

1 に答える 1

2

JSF はサーバー側のテクノロジーであり、通常、条件付きで panelGroup などのコンストラクト内にコンテンツを表示します。そのため、次のように、条件付きでレンダリングされた panelGroup 内の Ready ハンドラ内に jquery マジックを含めないでください:

<h:panelGroup id="ajaxRenderTarget">
  <ui:repeat value="#{bean.listOfComments}" var="var">
  ... display required information ...
  </ui:repeat>
  <h:panelGroup rendered="#{bean.showJqueryEffects}">
    <script type="text/javascript">
        jQuery(function($) {
            ... funky effects here ...
        });
    </script>
  </h:panelGroup>
</h:panelGroup>

上記の例で ui:repeat を使用した場所では、jsf のデータ反復コンポーネントまたはデータテーブルなどのコンポーネント ライブラリを使用できます。

考慮すべきもう 1 つのことは、 OmniFaces<o:onloadScript>、知っておく価値のある他のタグのホストです。

避けるべき間違いの 1 つは、jQuery ajax 関数を使用して JSF ページをロードしようとすることです。サーバーにはコンポーネント ツリーの状態がなく、機能しません。

于 2012-08-05T07:42:55.687 に答える