JSF 2ボタンとcommandButtonの例

JSF 2ボタンとcommandButtonの例

JSF 2.0では、<h:button />タグと<h:commandButton />タグの両方を使用して、ボタンタイプのHTML入力要素をレンダリングし、ナビゲーションを処理するメカニズムが異なります。

1. JSF h:commandButtonの例

h:commandButton」タグはJSF 1.x以降にリリースされており、「action」属性でナビゲーション結果を返すBeanを宣言できます。 ブラウザのJavaScriptが無効になっている場合、ナビゲーションはフォームポストを介して処理されるため、ナビゲーションは引き続き機能します。

1. 送信ボタン

//JSF


//HTML output

2. リセットボタン

//JSF


//HTML output

3. 通常ボタン

//JSF


//HTML output

4. onclickイベントを持つ通常のボタン

//JSF


//HTML output

2. JSF h:buttonの例

h:button」はJSF 2.0の新しいタグであり、「outcome」属性でナビゲーション結果を直接宣言できます。「h:commandButton」のような結果を返すためにBeanを呼び出す必要はありません。上記。 ただし、JavaScriptが無効になっているブラウザの場合、「h:button」タグが「window.location.href」を介してナビゲーションを処理する「onclick」イベントを生成するため、ナビゲーションは失敗します。 例を参照してください:

1. 結果なしの通常のボタン

//JSF


//HTML output

P.S if the outcome attribute is omitted, the current page URL will treat as the outcome.

2. 結果のある通常のボタン

//JSF


//HTML output

3. JavaScriptを使用した通常のボタン。

//JSF


//HTML output

My thought…
JSF 2.0がこの「h:button」タグをリリースした理由はよくわかりません。特にJavaScriptが無効になっているブラウザでは、JavaScriptリダイレクトは実用的ではありません。 最善の方法は、「outcome」属性を「h:commandButton」タグに統合することです。将来のリリースで実行できることを願っています。

ソースコードをダウンロード

ダウンロード–JSF-2-Button-CommandButton-Example.zip(10KB)