アクションで、オブジェクトの使用、修正、または作成や、ページの出力ストリームの修正を行います。このセクションでは、JRun でサポートされているすべてのアクションについて説明します。次の表で、JSP のアクションを説明します。
jsp:useBean
アクションにより、JSP で JavaBean がインスタンス化されます。インスタンス化が完了すると、JSP ファイル内の bean を参照できるようになります。次の例では、タイプ com.myco.myapp.MyBean
の myBean と名付けられた bean を定義します。
<jsp:useBean id="myBean" class="com.myco.myapp.MyBean" />
jsp:useBean
アクションのシンタックスは次のとおりです。
<jsp:useBean id="name" scope="page|request|session|application" typeSpec />
class="className" |
class="className" type="typeName" | beanName="beanName" type=" typeName" | type="typeName"
type
または class
を指定する必要があります。class を指定した場合は、beanName
は指定できません。type
と class
の両方を指定する場合は、class
を type
に割り当てる必要があります。
属性 beanName
は a.b.c
の形式で表された bean の名前です。これには、a/b/c.ser
の形式でクラスまたはリソース名を指定できます。
次のシンタックスを使用して、本文を jsp:useBean
アクションに指定できます。
<jsp:useBean id="name" scope="page|request|session|application" typeSpec >
body</jsp:useBean>
JRun によって、bean の本文が呼び出されます。一般的に、本文には、新規作成された bean を修正するスクリプトレットまたは jsp:setProperty
アクションが含まれます。
次の表で、jsp:useBean
アクションの属性を説明します。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
jsp:setProperty
アクションは、bean の 1 つ以上のプロパティの値を設定します。このアクションを使用する前に、jsp:useBean
を使用して bean を定義しておく必要があります。
jsp:setProperty
アクションのシンタックスは次のとおりです。
<jsp:setProperty name="beanName" prop_expr />
property="*" |
property="propertyName"| property="propertyName" param="parameterName"| property="propertyName" value="propertyValue"
propertyValue
変数は、リテラル文字列または式である必要があります。
次の例では、user
と名付けられた bean のプロパティに値を設定します。
<jsp:setProperty name="user" property="user" param="username" />
<jsp:setProperty name="results" property="row" value="<%= i + 1 %>" />
単純なインデックス付きプロパティは、setProperty
を使用して設定できます。インデックス付きプロパティの値には、配列を割り当てる必要があります。
次の表で、jsp:setProperty
アクションの属性を説明します。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
jsp:getProperty
アクションは、bean プロパティの値を文字列として out オブジェクトに書き込みます。このアクションを使用する前に、bean を定義しておく必要があります。
jsp:getProperty
アクションのシンタックスは次のとおりです。
<jsp:getProperty name="name" property="propertyName" />
次の例では、user
bean の name
プロパティを書き込みます。
<jsp:getProperty name="user" property="name" />
次の表で、jsp:getProperty
アクションの属性を説明します。
属性 |
説明 |
---|---|
name |
このプロパティで使用される bean インスタンス名を指定します。このアクションは、bean が見つからなかった場合に例外を生成 します。 |
property |
出力する値のプロパティの名前 |
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
jsp:include
アクションは、スタティックおよびダイナミックなリソースを現在のページに挿入します。挿入が完了すると、呼び出し側 JSP で処理が再開されます。
jsp:include
アクションのシンタックスには、次のいずれかの形式を使用します。
<jsp:include page="path" flush="true|false"/>
<jsp:include page="path" flush="true|false">
<jsp:param name="paramName" value="paramValue" /> ... </jsp:include>
デフォルトでは、JSP からクライアントに送信される出力データはバッファリングされます。バッファーを使用しているため、レスポンスヘッダー情報およびその他の出力はバッファーがフラッシュされるまではクライアントに送信されません。インクルードするページの出力がバッファリングされている場合、バッファーはインクルード前にフラッシュされます。このフラッシュのために、インクルードされるページはレスポンスヘッダーを設定できません。したがって、インクルードされたページでは setCookie
などのメソッドを使用できません。デフォルトは false です。
メモ: バッファーを無効にするか、または JSP の出力バッファーのサイズを設定するには、JSP ディレクティブを使用します。page
ディレクティブの詳細については、 「page ディレクティブ」 を参照してください。
<jsp:include page="/templates/copyright.html"/>
次の表で jsp:include
アクションの属性を説明します。
属性 |
説明 |
---|---|
page |
インクルードするファイルのパスを指定します。 パスの詳細については、 「相対 URL の指定」 を参照してください。 |
flush |
true に設定すると、このインクルードの前にバッファーがフラッシュされます。デフォルト値は false です。 |
jsp:include
は、jsp:param
アクションを取ることができます。このアクションにより、目的の JSP により受信される HTTP リクエストにパラメータを追加できます。詳細については、 「jsp:param」 を参照してください。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
jsp:forward
アクションによって、現在のページと同じアプリケーションで JSP やサーブレットが呼び出されます。jsp:forward
によって、現在の JSP の実行が終了されます。
JRun でページ出力がバッファリングされている場合は、jsp:forward
アクションが呼び出されるか、またはresponse オブジェクトの redirect
メソッドを使用してリクエストが転送されたときに、JRun によってバッファーがクリアされます。JRun は、転送元 JSP によって設定された Cookie を破棄せずに、クライアントに送信します。
JRun でページ出力がバッファリングされておらず、何らかのデータがその出力に書き込まれている場合に jsp:forward
を使用すると、IllegalStateException
が投げられます。
メモ: バッファーを無効にするか、または JSP の出力バッファーのサイズを設定するには、JSP ディレクティブを使用します。page
ディレクティブの詳細については、 「page ディレクティブ」 を参照してください。
jsp:forward
アクションのシンタックスでは、次の形式のいずれかを使用します。
<jsp:forward page="path" />
<jsp:forward page="path">
<jsp:param name="paramName" value="paramValue" /> ... </jsp:forward>
次の例で、ある JSP から別の JSP を呼び出す方法を示します。
<% String whereTo = "/templates/" + someValue; %>
<jsp:forward page='<%= whereTo %>' />
次の表で、jsp:forward
アクションの属性を説明します。
属性 |
説明 |
---|---|
page |
呼び出されるファイルのパスを指定します。パスの詳細については、 「相対 URL の指定」 を参照してください。 |
jsp:forward
の 2 番めの形式は jsp:param
アクションへの追加です。このアクションにより、目的の JSP により受信される HTTP リクエストにパラメータを追加できます。詳細については、 「jsp:param」 を参照してください。
次の例は、ある JSP から別の JSP を呼び出す方法を示しています。
<% request.setAttribute("Greeting", "Hello World"); %> <jsp:include page="secondpage.jsp" flush="true"/>
ご挨拶:<%= request.getAttribute("Greeting")%>
この例では、あるページから別のページにデータを渡します。属性の値は String に限定されません。どのようなタイプのオブジェクトでも属性として渡すことができます。
また、jsp:param
アクションを使用して、Greeting
をパラメータとして渡すこともできます。この場合、パラメータはデスティネーション JSP に文字列として渡されます。この処理は、デスティネーション JSP がHTTP POST
メソッドを使用してリクエストされた後で情報を受け取る場合と同様です。
request オブジェクト内でパラメータを使用して情報を 2 番めのページに渡すことによって 2 番めのページを直接クライアントのリクエストにレスポンスできるようにするか、または別の JSP から呼び出すことができるように、2 番めのページを作成できます。
次の例では、jsp:param
アクションを使用して、Greeting
パラメータを渡します。
<jsp:include page="page1.jsp" flush="true">
<jsp:param name="Greeting" value="Hello World" /> </jsp:include>
インクルードされるページでは、次のように、request.getParameter
メソッドを使用してパラメータにアクセスします。
ご挨拶:<%= request.getParameter("Greeting") %>
呼び出し側ページと同様に、デスティネーション JSP も、JSP out
オブジェクトを使用してクライアントにデータを返すことができます。ただし、呼び出し側ページの出力がバッファリングされている場合、JRun は、呼び出し前にバッファーをフラッシュします。このフラッシュのために、デスティネーションページはレスポンスヘッダーを設定できません。
また、デスティネーションページは、request オブジェクトを使用して呼び出し側ページに情報を返すこともできます。たとえば、デスティネーションページは何らかの値を決定して、setAttribute
メソッドを使用してそれを request オブジェクトに書き込むことができます。デスティネーションページから呼び出し側ページに制御が戻されたとき、呼び出し側ページは request オブジェクトの getAttribute
メソッドを使用してその情報にアクセスできます。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
jsp:param
アクションにより、ある JSP から別の JSP にリクエストが転送されるときに、パラメータが名前/値のペアとして HTTP リクエストに追加されます。このアクションと併用できるのは、jsp:include
、jsp:forward
、および jsp:plugin
アクションだけです。
jsp:include
または jsp:forward
とともに jsp:param
を使用すると、デスティネーションページにより、オリジナルのリクエストパラメータを持つオリジナルの HTTP リクエストと、jsp:param
で指定された新規パラメータがすべて受信されます。jsp:param
により、リクエストに既に入っているパラメータが追加された場合、新規パラメータ値は既存の値の前に入ります。
たとえば、リクエストにパラメータ myParm=a
が含まれているときに、jsp:param
を使用して myParm=b
を追加すると、転送されたリクエストには myParm=b, a
が含まれます。ここで、新規パラメータがリストの先頭に追加されていることに注意してください。
新規パラメータのスコープは、jsp:include
や jsp:forward
のデスティネーション JSP です。つまり、インクルードされたページからオリジナルの JSP に返された後、新規パラメータと値がリクエストから削除されます。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
jsp:plugin
アクションを使用して、クライアントブラウザでアプレットを呼び出すことができます。このアクションで、適切なクライアントブラウザ依存のコンストラクト (OBJECT
または EMBED
) を含む HTML テキストが生成されます。この構成体により、Java プラグインがダウンロードされ、続いてアプレットや JavaBean が実行されます。
JRun では、リクエスト元ユーザーエージェントに応じて、この要素が object
タグまたは embed
タグのいずれかで置き換えられ、レスポンスの出力ストリームに書き込まれます。
jsp:plugin
アクションのシンタックスは次のとおりです。
<jsp:plugin
type="bean|applet"
code="objectCode"
codebase="objectCodebase"
{ align="alignment" }
{ archive="archiveList" }
{ height="height" }
{ hspace="hspace" }
{ jreversion="jreversion" }
{ name="componentName" }
{ vspace="vspace" }
{ width="width" }
{ nspluginurl="url" }
{ iepluginurl="url" } >
{ <jsp:params>
{ <jsp:param name=" paramName"
value="paramValue" /> }+
</jsp:params> }
{ <jsp:fallback> arbitrary_text </jsp:fallback> } >
</jsp:plugin>
次の例では、クライアントにある MyPlugin.class
を呼び出します。
<jsp:plugin type=applet code="MyPlugin.class" codebase="/html" >
<jsp:params> <jsp:param name="myplugin" value="Greetings"/> </jsp:params> <jsp:fallback> <p> unable to load Plugin </p> </jsp:fallback> </jsp:plugin>
次の表で jsp:plugin
アクションの属性を説明します。
属性 |
説明 |
---|---|
type |
コンポーネントのタイプを bean またはアプレットとして指定します。 |
code |
アプレットを含むクラスファイル名、またはクラスへのパスを指定 します。 |
codebase |
archive 属性で指定された相対パスを解決するために使用されるベースパスを指定します。この値を省略すると、jsp:plugin を呼び出した JSP ファイルのパスが使用されます。 |
align |
bean またはアプレットの場所を指定します。 align に次の値を指定すると、周囲のテキストとの関係でオブジェクトの位置が決まります。
|
archive |
オブジェクトのリソースを含むアーカイブを表す URI を、スペースで区切られたリストとして指定します。一般的に、アーカイブをあらかじめロードしておくと、オブジェクトのロード時間を削減できます。相対 URI として指定されたアーカイブは、 codebase 属性に相対的であると解釈されます。 |
height |
デフォルトの bean またはアプレットの高さを書き換えて、指定された値を使用します。この値は次の形式で指定できます。
|
hspace |
bean またはアプレットの左右に挿入される余白の量を指定します。 この値は次の形式で指定できます。
|
jreversion |
コンポーネントが動作するために必要な JRE 仕様のバージョン番号を表します。デフォルトは 1.1 です。 |
name |
アプレットの名前を指定します。これにより、このアプレットを JavaScript から参照したり、同じページにある別のアプレットを 参照できるようになります。 |
vspace |
bean またはアプレットの上下に挿入される余白の量を指定します。 この値は次の形式で指定できます。
|
title |
アプレットに関する記述情報を指定します。 |
width |
bean やアプレットについて、デフォルトのオブジェクト幅を書き換え、指定された値を使用します。この値は次の形式で指定できます。
|
nspluginurl |
Netscape Navigator 用 JRE プラグインをダウンロードできる URL を指定します。デフォルトは実装によって異なります。 |
iepluginurl |
Internet Explorer 用 JRE プラグインをダウンロードできる URL を指定します。デフォルトは実装によって異なります。 |
jsp:param |
アプレットコンポーネントまたは JavaBeans コンポーネントにパラメータを設定します。詳細については、 「jsp:param」 を参照してください。 |
jsp:fallback |
プラグインが起動できなかったときに、クライアントブラウザにより 表示されるコンテンツを指定します。プラグインは起動できても、アプレットコンポーネントまたは JavaBeans コンポーネントが見つからなかったり、起動できなかったりした場合は、プラグイン固有のメッセージがユーザーに送られます。 |
HTML 関連の属性の詳細については、HTML 4.0 仕様 (http://www.w3.org/TR/REC-html40/) をご覧ください。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。