9.2.3. ページノードと遷移


<page> ノードは、システムがユーザー入力を待っている状態を表します。
<page name="displayGuess" view-id="/numberGuess.jsp"> 
  <redirect/> 
  <transition name="guess" to="evaluateGuess"> 
    <action expression="#{numberGuess.guess}" /> 
  </transition> 
</page>
Copy to Clipboard Toggle word wrap
view-id は JSF のビュー ID です。 <redirect/> エレメントは JSF ナビゲーションルールにある <redirect/> と同じ効果をもたらします。 つまり、 post-then-redirect の動作をしてブラウザの更新ボタンに関する問題に対応します。 (Seam はこれらブラウザのリダイレクト全体に対話コンテキストを伝播するため、 Ruby on Rails 系の フラッシュ 構造は必要としません。)
遷移名は numberGuess.jsp のコマンドボタンまたはコマンドリンクをクリックすると起こる JSF 結果の名前です。
<h:commandButton type="submit" value="Guess" action="guess"/>

Copy to Clipboard Toggle word wrap
このボタンをクリックして遷移が起こると、 jBPM は numberGuess コンポーネントの guess () メソッドを呼び出して遷移のアクションを起動します。 jPDL でアクションの指定に使用される構文は普通の JSF EL 式であり、 遷移のハンドラは現在の Seam コンテキストにある Seam コンポーネントのメソッドになります。 従って、 JSF イベント用のイベントモデルと同じイベントモデルを jBPM イベント用に持つことになります。これは Seam で従うべき原則の 1 つです。
結果が null になる場合 (action が定義されていないコマンドボタンなど)、 Seam は名前のない遷移のサインがあればそれを送信します。 すべての遷移に名前が付けられている場合には単純にそのページを再表示します。 したがって次のようにこのボタンとページフローを単純化することができます。
<h:commandButton type="submit" value="Guess"/>
Copy to Clipboard Toggle word wrap
次のような名前のない遷移を実行します。
<page name="displayGuess" view-id="/numberGuess.jsp">
  <redirect/>
  <transition to="evaluateGuess">
    <action expression="#{numberGuess.guess}" />
  </transition>
</page>
Copy to Clipboard Toggle word wrap
ボタンにアクションメソッドを呼び出すことも可能です。 この場合アクションの結果が行われる遷移を決定します。
<h:commandButton type="submit" value="Guess" 
   action="#{numberGuess.guess}"/>
Copy to Clipboard Toggle word wrap
<page name="displayGuess" view-id="/numberGuess.jsp">
  <transition name="correctGuess" to="win"/>
  <transition name="incorrectGuess" to="evaluateGuess"/>
</page>
Copy to Clipboard Toggle word wrap
ただし、 これはフロー制御をページフロー定義以外に移行して他のコンポーネントに戻しているため質の悪いスタイルだと考えられます。 フロー制御関連はページフロー自体に集中させる方がよいでしょう。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat