3.JSP のアクション

JSP のアクションとは、Java のコードを書かずに、オブジェクトをインスタンス化したり、サーバーサイドのリソースを利用したりする機能です。

(1) アクションの構文と種類

 アクションの構文は次のとおりです。


  構文1 <jsp: アクション名 属性=値 />

  構文2 <jsp: アクション名 属性=値 >
      ボディ 
      </jsp: アクション名>


 アクションには次の種類があります。

アクション名内容
useBeanJavaのObjectをインスタンス化します。すなわち、指定したクラスのオブジェクトを生成します
setPropertyBeanに値をセットします
getPropertyBeanのプロパティの値を表示します
include別のJSPのファイルを実行した結果を表示します
forwardリクエストを別のJSPやサーブレットに転送します
paramjsp:include、jsp:forward、jsp:paramsタグの中で使用され、キーと値の情報を提供します
pluginJJavaプラグインをダウンロードしてアプレットやJavaBeansコンポーネントを実行するHTMLを生成します
paramsjsp:pluginタグの中でアプレットやJavaBeansコンポーネントのパラメーターを指定するために使用します
fallbackjsp:pluginタグの中でプラグインが起動できなかった場合のコンテンツを指定します


(2) useBean

 useBean は指定したクラスのオブジェクトを生成します。これは「7. クラス・オブジェクト」で学んだことと同じで、「 Car mycar = new Car(); 」のように定義するのを、次のように置き換えているのと同じです。

  <%JSP: useBean id="mycar" class="Car" />


属性説明
id 指定されたscopeでのオブジェクトのインスタンスを識別するに使用する名前と、宣言してインスタンス化されるBeanのスクリプト変数名を指定します。
scope
Beanが使用可能な範囲を指定します。以下が指定できる文字です
page現在のページ内(規定値)
request現在のページのServletRequestオブジェクトのgetAttribute(name)メソッドで得られるインスタンスを使用できるようにします。現在のリクエストが終了すると、その参照は破棄されます
session現在のページのHttpSessionオブジェクトのgetAttribute(name)メソッドで得られるインスタンスを使用できるようにします。現在のセッションが無効になると、その参照は破棄されます。
application現在のページのServletContextオブジェクトのgetAttribute(name)メソッドで得られるインスタンスを使用できるようにします。ServletContextが再生成されると、その参照は破棄されます。
class Beanの実装を定義する完全なクラス名を指定します。
beanName java.beans.Beanクラスのinstantiate()メソッドで認識されるBean名を指定します。
type 指定された場合、スクリプト変数の型を定義します。省略した場合は、class属性の値と同じになります。
例1 : javahello.HelloWorldクラスのhelloworldというインスタンスを利用可能にする場合

 <jsp:useBean id="helloworld" class="javahello.HelloWorld" />

例2 : Beanを生成してなおかつmessageという名前のプロパティをBeanに設定する場合

 <jsp:useBean id="helloworld" class="javahello.HelloWorld" >
 <jsp:setProperty name="helloworld" propety="message" value="Hello World">
 </jsp:useBean>


例3 : javahello.HelloWorldクラスのhelloworldというインスタンスを利用可能にする場合

 <jsp:useBean id="helloworld" type="javahello.HelloWorld" scope="session" />


(3) setProperty

 

属性説明
name Bean名を指定します
property Beanのプロパティ名を指定します。 property="name" と具体的に名前を指定する方法と property="*" と一括で指定する方法があります
param Beanのプロパティに設定する値を持つリクエストのパラメーター名を指定します
value Beanのプロパティに割り当てる値を指定します
例1 : msgという名前のリクエストのパラメーターの値ををjavahelloという名前のBeanのmessageという名前のプロパティにセットしています

 <jsp:setProperty name="javahello" property="message" param="msg" />

例2 : javahelloという名前のBeanのmessageというプロパティにvalueの値を設定しています

 <jsp:setProperty name="javahello" property="message" value="Hello World" />


(4) getProperty

 

属性説明
name 出力するプロパティを持つBean名を指定します
property 出力するプロパティ名を指定します
例 : helloworldという名前のBeanのmessageというプロパティの値を表示しています <jsp:getProperty name="javahello" property="message" />


(5) include

 

属性説明
page インクルードするファイルのパスを指定します
flush バッファをフラッシュするかどうか指定します。規定値はtrueです
例 : helloworld.htmlというファイルをインクルードしています

 <jsp:include page="/helloworld.html" />


(6) forward

 

属性説明
page 転送するファイルのパスを指定します
例1 : helloworld.htmlファイルに転送しています

 <jsp:forward page="/helloworld.html" />

例2 : helloworld.jspファイルをmsgという名前のパラメーターを伴って呼び出しています

 <jsp:forward page="/helloworld.jsp"/>
  <jsp:param name="msg" value="Hello World" />
  </jsp:foward/>


(7) plugin

 

属性説明
type コンポーネントのタイプを指定します
codeHTMLドキュメントを参照
codebase HTMLドキュメントを参照
align HTMLドキュメントを参照
archive HTMLドキュメントを参照
height HTMLドキュメントを参照
hspace HTMLドキュメントを参照
jreversion HTMLドキュメントを参照
name HTMLドキュメントを参照
vspace HTMLドキュメントを参照
title HTMLドキュメントを参照
width HTMLドキュメントを参照
nspluginurl ネットスケープナビゲーターでJREプラグインをダウンロードするURLを指定します
iepluginurl インターネットエクスプローラーでJREプラグインをダウンロードするURLを指定します
例 : HelloWorldAppletというアプレットを表示しています

  <jsp:plugin type=applet code="HelloWroldApplet.class">
   <jsp:params>
    <jsp:param name="msg" value="Hello World"/>
   </jsp:params>
   <jsp:fallback>
    <p> unable to start plugin </p>
   </jsp:fallback>
  </jsp:plugin>


前の章(2.JSP のディレクテイブ)    次の章(4.JSP のスクリプト)