6

私は JSF が初めてで、アクション属性と結果属性の違いを理解しようとしていますか? これは、ボタンとコマンド ボタンの違いではなく、同じボタン タグの結果属性とアクション属性の違いです。

たとえば、次のことができます。

<h:button value="Go" outcome="<value>" />

また

<h:button value="Go" action="<value>" />

いつどれを使うべきかわかりません。また、<value>is<#{bean.methodThatReturnsStringInNavigationRule}>または の場合、違いはありますか<string literal in navigation rule>?

ありがとうございました。

4

2 に答える 2

14

違いは、アクションは実行されるサーバーメソッドを定義しますが、結果はページの宛先となるビューIDを指定することです。達成しようとしている目標に応じて、JSF入力を使用する必要があります。

  • <h:button outcome="user-management">ユーザー管理ページをターゲットにします。一種のリンクとして想像してみてください。
  • <h:commandButton action="#{backingBean.goToUserManagement}"アクションメソッドで「user-management」を返すと、結果と同じようになりますが、サーバー側でロジックを実行できます。h:formタグに埋め込む必要があります。

また、サーバー側のgetterメソッドが「user-management」値を返す限り、<h:button outcome="user-management">またはの間に違いはありません。<h:button outcome="#{backingBean.userManagementNavigationResult}">

于 2013-02-23T00:40:01.380 に答える
4

JSF 2.0 API が表示される場合、タグのaction属性はありません。JSF 2.0 の新しいタグです。ナビゲーションの結果を属性で直接宣言できます。Beanを呼び出して のような結果を返す必要はありません。<h:button><h:button>outcome<h:commandButton>

ただし、JavaScript が無効になっているブラウザの場合、「h:button」タグは「onclick」イベントを生成して を介してナビゲーションを処理するため、ナビゲーションは失敗しますwindow.location.href

<h:button value="buton" outcome="login" />          

//HTML出力

<input type="button" 
       onclick="window.location.href='/ContextRoot/faces/login.xhtml; return false;" 
       value="buton" />

ソース: mkyong . まともな例を見つけることができる私のお気に入りのウェブサイト。

JSF の優れたブログ: BalusC。このフォーラムの非常に多くの人々にとってのヒーロー:)。

于 2013-02-23T00:15:33.460 に答える