連載
» 2007年02月16日 00時00分 公開

やり直し「JSPとTomcat」(10):JavaBeansを使いこなすための2つのタグ (1/2)

Javaを途中までかじったが挫折した。やはりJavaプログラマにスキルチェンジしたい! という読者のために、Tomcatの最新バージョンを使いながらJSPを基礎から解説していく。(編集部)

[吉川和巳,有限会社スティルハウス]

JavaBeansのプロパティを取り出すgetPropertyタグ

 前回は、Javaクラスのインスタンスを生成するJSP標準アクション、<jsp:useBean>タグの使い方を説明しました。今回は、同タグと併せてJavaBeansの活用に欠かせない標準アクションであるgetProperty>タグと<jsp:setProperty>タグの機能を解説します。

 まずは、<jsp:getProperty>タグです。同タグは、JavaBeansのプロパティから値を読み出し、Webブラウザ上に文字列として表示します。以下の要領で記述します。

<jsp:getProperty name="<変数名>" property="<プロパティ名>" />

 この場合、属性nameで指定したスクリプティング変数が指すJavaBeansについて、属性propertyで指定したプロパティの値を取得し、Webブラウザに表示します。

 では、このタグの機能を実際にTomcat上で試してみましょう。最初に、対象となるJavaBeansクラスを以下のように作成します。

package sample;

public class User {

    private String userId = "<未設定>";

    private String userName = "<未設定>";

    public String getUserId() { return userId; }

    public void setUserId(String s) { userId = s; }

    public String getUserName() { return userName; }

    public void setUserName(String s) { userName = s; }

}

 このJavaBeansは、「userId」および「userName」という2つのプロパティを持ち、それぞれについてgetterメソッドsetterメソッドを備えています。

編集部注:JavaBeansgetterメソッドsetterメソッドについて詳しく知りたい読者は、本連載第8回の「カプセル化するとインスタンス変数は賢くなる」をご参照ください。

 続いて、以下の手順を実行します。

  • JavaBeansクラスをコンパイルする
  • Tomcatの/webapps/ROOT/WEB-INFディレクトリに「/classes/sample」ディレクトリを作成し、コンパイルで得られたクラスファイル「User.class」を配置する

 この手順により、JavaBeansをJSPページから呼び出す準備が整いました。なお、こうしたクラスファイルの配置位置などについて詳しくは、今後の連載で説明する予定です。

 では、JavaBeansを利用するJSPページを作成しましょう。Tomcatの/webapps/ROOTディレクトリに、以下の内容のJSPファイル「test.jsp」を作成します。

<%@ page contentType="text/html; charset=Shift_JIS" %>

<jsp:useBean id="user" class="sample.User" />

<html>
    <head>
        <title>JSPサンプル</title>
    </head>
    <body>
        ユーザID: <jsp:getProperty name="user"
                                    property="userId" /> <br>
        ユーザ名: <jsp:getProperty name="user"
                                    property="userName" /> <br>
        
    </body>
</html>

 ここでは、冒頭の<jsp:useBean>タグでは、クラス名「sample.User」で指定したJavaBeansのインスタンスを生成し、スクリプティング変数「user」にセットしています。なお、scope属性は未指定であるため、デフォルトのpageスコープが選択されます。

 続いて、後半の<jsp:getProperty>タグでは、変数userにセットされたJavaBeansより、プロパティ「userId」の値を取得してWebブラウザに出力しています。

 Tomcatを起動し、Webブラウザにて「http://localhost:8080/test.jsp」というURLを開くと、以下のような内容が表示されます。

図1 test.jspの表示結果 図1 test.jspの表示結果

 このように、userIdプロパティおよびuserNameプロパティの初期値である「<未設定>」という文字列がそれぞれ表示されているのが分かります。

 ちなみに、今回の例では、いずれのプロパティもString型ですので、setterメソッドが返す文字列がそのままWebブラウザに表示されます。

 もし、プロパティがString型以外(例えば、Date型)であった場合、<jsp:getProperty>タグでは、戻り値のオブジェクトに対して「toStringメソッド」を呼び出し、オブジェクトを文字列に変換します。プリミティブ型の場合は、その値をそのまま文字列に変換します。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。