Section8: 標準アクションを使用したJSPページの構築

標準アクションタグ
タグ説明
<jsp:forward>他のJSPやサーブレットへのフォワードを行う。
<jsp:include>JSPやサーブレットを動的にインクルードする。
<jsp:param><jsp:include>タグ, <jsp:forward>タグでリクエストパラメータを送信する場合などに子タグとして使用する。
<jsp:useBean>Beanをスコープから検索し、なければ生成する。Beanはスクリプトレット内で使用可能。
<jsp:setProperty>Beanのsetterを通じてプロパティをセットする。
<jsp:getProperty>Beanのgetterを通じてプロパティを取得する。
<jsp:attribute>タグのボディ部を使って属性の値を記述するためのタグ。JSPフラグメントの属性を記述する際はこれを使用する必要がある。
<jsp:body>タグのボディ部を定義する。<jsp:attribute>タグを使用した場合は、必ずこのタグを使ってボディ部を記述する必要がある。
<jsp:doBody>タグファイルで使用するタグ。ボディ部の評価を行う。
<jsp:invoke>タグファイルで使用するタグ。JSPフラグメントの評価を行う。
<jsp:root>JSPをXML形式で記述する際のルート要素となるタグ。
<jsp:scriptlet>スクリプトレットのXML形式タグ。
<jsp:declaration>宣言のXML形式タグ。
<jsp:expression>式のXML形式タグ。
  • 以下のタグもあるが省略した。
    • <jsp:plugin>
    • <jsp:params>
    • <jsp:fallback>
    • <jsp:element>
    • <jsp:text>
    • <jsp:output>
<jsp:forward>タグの属性と子タグ
<jsp:forward>タグの属性
属性必須説明
page他のJSPやサーブレットのパス。"/"から始まる場合はコンテキストルートから、それ以外はこのJSPからの相対パス。
<jsp:forward>タグの子タグ
タグ説明
<jsp:param name="..." value="...">フォワード時にリクエストパラメータを追加する。複数記述可能。
<jsp:include>タグの属性と子タグ
<jsp:include>タグの属性
属性必須説明
page他のJSPやサーブレットのパス。"/"から始まる場合はコンテキストルートから、それ以外はこのJSPからの相対パス。
flush-includeを行う前にバッファをフラッシュするかどうかをtrueまたはfalseで指定。デフォルトはfalse。
<jsp:include>タグの子タグ
タグ説明
<jsp:param name="..." value="...">インクルード時にリクエストパラメータを追加する。複数記述可能。
  • <%@ include %> は静的インクルード。
    • インクルード先のソースを現在のJSPソースにマージした上で、1つのServletとして変換・コンパイルされる。
    • インクルード先のJSPは断片的なソースでよい。(例えばインクルード元のフィールドを宣言なしで使っていてもよい)
  • <jsp:include>タグは動的インクルード。
    • インクルード先のJSPは単独のServletに変換され、そのServletの結果が現在のJSPに取り込まれる。
    • インクルード先のJSPは単独で完結したファイルになっている必要がある。
    • 内部的にはRequestDispatcherのincludeが呼ばれる。(Tomcat6でJSPから変換されたServletのソースで確認)
<jsp:useBean>タグの属性およびボディ部
属性必須説明
idBeanに付ける名前。
scope-Beanを参照する場合に検索するスコープ。page, request, session, application のいずれかを指定。省略時はpageが使用される。
Beanの型に関する属性として、以下の4パターンのいずれかを必ず指定する。
class="Beanクラスの完全修飾名"Beanのクラス名を指定する。
class="Beanクラスの完全修飾名" type="Beanの型の完全修飾名"インスタンス化される場合はclassに指定されたクラスをインスタンス化する。Beanはtypeで指定した型で保持される。
beanName="Bean名" type="Beanの型の完全修飾名"java.bean.Beansクラスのinstantiate()メソッドを使用してBeanのインスタンス化を行う場合に使用する。
type="Beanの型の完全修飾名"Beanを保持する型を指定する。Beanがスコープから検索できない場合にはエラーとなる。
ボディ部
ボディ部-Beanのインスタンスを新たに生成した場合のみ評価される。
例:Fooのインスタンスを生成したときのみ、そのインスタンスのbarプロパティに値を設定する。
<jsp:useBean id="foo" class="test.Foo" scope="session" >
  <jsp:setProperty name="foo" property="bar" value="test"/>
</jsp:useBean>
  • Beanの検索は、スコープを順にたどるのではなく、指定されたスコープ(指定されなかった場合はpage)のみを検索することに注意。
  • Beanはスクリプトレット内で変数として利用可能。
<jsp:setProperty>タグの属性
属性必須説明
nameBeanの名前。
Beanのプロパティに関する属性として、以下の4パターンのいずれかを必ず指定する。
property="*"全てのリクエストパラメータをBeanにセットする。ただしリクエストパラメータ名とBeanのフィールド名が一致している必要あり。
property="プロパティ名"プロパティ名に該当するリクエストパラメータをプロパティにセットする。
property="プロパティ名" param="パラメータ名"指定されたパラメータ名に対応するリクエストパラメータを取得し、プロパティにセットする。
property="プロパティ名" value="値"指定された値をプロパティにセットする。
<jsp:getProperty>タグの属性
属性必須説明
nameBeanの名前。
property取得するBeanのプロパティ名。
<jsp:attribute>タグの属性とボディ部
属性必須説明
name属性の名前
trim-ボディ部に設定した値の前後に空白があった場合に削除するかどうかをtrueまたはfalseで指定する。省略時のデフォルトはtrue。
ボディ部属性に設定する値やJSPフラグメント。
<jsp:body>タグの属性とボディ部
属性必須説明
ボディ部親タグのボディ部をここに記述する。
  • 属性はない。
inserted by FC2 system