Javaを途中までかじったが挫折した。やはりJavaプログラマにスキルチェンジしたい! という読者のために、Tomcatの最新バージョンを使いながらJSPを基礎から解説していく。(編集部)
前回は、Javaクラスのインスタンスを生成するJSPの標準アクション、<jsp:useBean>タグの使い方を説明しました。今回は、同タグと併せてJavaBeansの活用に欠かせない標準アクションである
まずは、<jsp:getProperty>タグです。同タグは、JavaBeansのプロパティから値を読み出し、Webブラウザ上に文字列として表示します。以下の要領で記述します。
<jsp:getProperty name="<変数名>" property="<プロパティ名>" /> |
この場合、属性nameで指定したスクリプティング変数が指すJavaBeansについて、属性propertyで指定したプロパティの値を取得し、Webブラウザに表示します。
では、このタグの機能を実際にTomcat上で試してみましょう。最初に、対象となるJavaBeansクラスを以下のように作成します。
package sample; |
このJavaBeansは、「userId」および「userName」という2つのプロパティを持ち、それぞれについてgetterメソッドとsetterメソッドを備えています。
続いて、以下の手順を実行します。
この手順により、JavaBeansをJSPページから呼び出す準備が整いました。なお、こうしたクラスファイルの配置位置などについて詳しくは、今後の連載で説明する予定です。
では、JavaBeansを利用するJSPページを作成しましょう。Tomcatの/webapps/ROOTディレクトリに、以下の内容のJSPファイル「test.jsp」を作成します。
<%@ page contentType="text/html; charset=Shift_JIS" %> |
ここでは、冒頭の<jsp:useBean>タグでは、クラス名「sample.User」で指定したJavaBeansのインスタンスを生成し、スクリプティング変数「user」にセットしています。なお、scope属性は未指定であるため、デフォルトのpageスコープが選択されます。
続いて、後半の<jsp:getProperty>タグでは、変数userにセットされたJavaBeansより、プロパティ「userId」の値を取得してWebブラウザに出力しています。
Tomcatを起動し、Webブラウザにて「http://localhost:8080/test.jsp」というURLを開くと、以下のような内容が表示されます。
このように、userIdプロパティおよびuserNameプロパティの初期値である「<未設定>」という文字列がそれぞれ表示されているのが分かります。
ちなみに、今回の例では、いずれのプロパティもString型ですので、setterメソッドが返す文字列がそのままWebブラウザに表示されます。
もし、プロパティがString型以外(例えば、Date型)であった場合、<jsp:getProperty>タグでは、戻り値のオブジェクトに対して「toStringメソッド」を呼び出し、オブジェクトを文字列に変換します。プリミティブ型の場合は、その値をそのまま文字列に変換します。
Copyright © ITmedia, Inc. All Rights Reserved.