5

私は JSF が初めてで、クリックするとバッキング Bean のメソッドを呼び出すボタンが必要です。これは可能ですか、それとも AJAX などを使用する必要がありますか? 私は次のようなことを試しました

<button onclick="#{myManagedBean.myMethod()}">MyButton</button>

しかし、それらはうまくいきませんでした。それを行う通常の方法は何ですか?

編集:
そのボタンは JqueryUI によって作成され、ボタンのタイプを commandButton に変更できません。カスタマイズできるのは 2 つだけ
です。1. そのボタンから JavaScript 関数を呼び出す
2. フォームのターゲット (ボタンが存在する内部) を変更
するまたはフォーム送信時?

4

4 に答える 4

4

JSF には、マネージド Bean のメソッドにバインドできる JSF コンポーネントのアクション パラメータがあります。このメソッドバインディングを使用して、マネージド Bean のメソッドを呼び出すことができます。

<h:commandButton value="click" action="#{managedbean.method}"/>
于 2014-01-02T07:12:25.347 に答える
3

onClick は、Java スクリプトなどのクライアント側スクリプト関数を呼び出すために使用されます。サーバー側 (バッキング Bean) でメソッドを呼び出すには、commandButton コンポーネントの action 属性を使用する必要があります。JSF は、この目的のためにコンポーネント h:commandButton を提供します。commandButton を使用してバッキング Bean でメソッドを呼び出すための構文は次のとおりです。

 <h:commanButton value="button" action="#{myBean.methodName()}"/>

呼び出すメソッドは の形式String methodName()にする必要があります。返される文字列値は、ナビゲーション ハンドラが次に表示するページを決定するために使用する結果を表します。

編集:

ボタンからバッキング Bean メソッドを呼び出すには、ボタンの onClick 属性を使用して JavaScript 関数を呼び出します。必要なバッキング Bean メソッドを呼び出す隠しボタンをフォームに作成する必要があります。JavaScript 関数で、以下のコードを使用して非表示のボタンをクリックし、それによってバッキング Bean メソッドを呼び出します。

  document.getElementById('form:button').click();
于 2014-01-02T07:15:03.210 に答える
2

jsfコマンドボタンコンポーネントを使用する必要があります

<h:commandButton value="MyButton" action="#{myManagedBean.myMethod()}"></h:commandButton>
于 2014-01-02T07:11:34.773 に答える
1

実際、Adarsh はすでに非常によく答えています。ここで追加したいのは、jQuery で JSF バッキング Bean 関数を呼び出すためのオプションの選択です。これも便利で、jQuery の助けを借りてボタンをクリックすると、より複雑なロジックを追加できます。

JSF を使用できます。さらに、 JSF バッキング Bean 関数を呼び出す要素に属性をh:commandButton追加できます。action

例えば<h:commandButton value="Update" id="update" action="#{myPageBean.updateMyPage}"></h:commandButton>

上記の例に示されていなかった、または類似のイベントにすでにお気付きかもしれonClick()ませんが、実際には、この部分のジョブはイベント処理およびプロセスとして jQuery によって処理されます。

たとえば、ボタンを見つけて、var updateButton = $(document.getElementById("myPage:update"));またはvar updateButton = $(#"myPage\\:update")); jQueryclick()関数を 使用してボタンのクリックイベントを次のように登録しますupdateButton.click(function() {...do whatever you want here...});

最終的な効果は、JSF ページ ボタンをクリックしたときです。JSF バッキング Bean メソッドが として呼び出されupdateMyPageます。

于 2016-12-21T00:00:37.080 に答える