7.2. ページアクション


Seam ページアクションはページのレンダリングの直前に発生するイベントです。 ページアクションは WEB-INF/pages.xml で宣言します。 特定の JSF ビュー ID に対してページアクションを定義することも可能です。
<pages> 
    <page view-id="/hello.jsp" action="#{helloWorld.sayHello}"/> 
    </pages>
Copy to Clipboard Toggle word wrap
あるいは、view-id へのサフィックスとして * ワイルドカードを使用し、パターンに一致するすべてのビュー ID に適用するアクションを指定します。
<pages> 
    <page view-id="/hello/*" action="#{helloWorld.sayHello}"/> 
    </pages>
Copy to Clipboard Toggle word wrap

注記

<page> エレメントが細かなページ記述子で定義されている場合は暗黙的に定義されるため view-id 属性を省略することができます。
複数のワイルドカード化されたページアクションが現在のビュー ID に一致する場合は、Seam は指定が明確でないアクションから指定が明確なアクションの順ですべてのアクションを呼び出します。
ページアクションのメソッドは JSF の結果を返すことができます。 その結果 が null でなければ、 Seam はビューへの移動に定義済みナビゲーションルールを使用します。
<page> エレメントに記載されている ビュー ID は実際の JSP や Facelet ページに対応する必要がありません。 このため、 ページアクションを使って Struts や WebWork のような従来のアクション指向のフレームワーク機能を再生することができます。 HTTP GET など Faces 以外の要求への応答に複雑な動作を行う場合に便利です。
複数または条件付きのページアクションは <action> タグを使って指定できます。
<pages> 
  <page view-id="/hello.jsp">
    <action execute="#{helloWorld.sayHello}" 
            if="#{not validation.failed}"/>
    <action execute="#{hitCount.increment}"/> 
  </page> 
</pages>
Copy to Clipboard Toggle word wrap
ページアクションは初期の要求 (Faces 以外) とポストバック (Faces) 要求の両方で実行されます。 ページアクションを使用してデータをロードするとポストバックで実行されている標準の JSF アクションと競合する場合があります。 ページアクションを無効にするひとつの方法として、初期要求でのみ true に解決する条件を設定します。
<pages> 
  <page view-id="/dashboard.xhtml"> 
    <action execute="#{dashboard.loadData}" 
            if="#{not FacesContext.renderKit.responseStateManager
                .isPostback(FacesContext)}"/> 
  </page> 
</pages>
Copy to Clipboard Toggle word wrap
この条件は ResponseStateManager#isPostback(FacesContext) を参照して要求がポストバックであるかどうかを判断します。 ResponseStateManager には FacesContext.getCurrentInstance().getRenderKit(). getResponseStateManager() を使ってアクセスします。
Seam はこの冗長性の少ない結果を得ることができる組み込みの条件を提供しています。 on-postback 属性を false に設定するとポストバックでページアクションを無効にすることができます。
<pages> 
    <page view-id="/dashboard.xhtml"> 
    <action execute="#{dashboard.loadData}" on-postback="false"/> 
    </page> 
    </pages>
Copy to Clipboard Toggle word wrap
on-postback 属性はデフォルトでは true に設定され後方互換性を維持します。 ただし、 false を使用することも多々あります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat