HTMLやStrutsに必須の“タグ”と“サブミット”の常識Webアプリの常識をJSPとStrutsで身につける(4)(2/3 ページ)

» 2008年09月25日 00時00分 公開
[シャムカダカ株式会社メセナ・ネットコム]

Strutsの“5”つのタグライブラリ一覧

 ここからは、Strutsタグの主なタグライブラリを紹介していきます。Strutsには、大きく5つのタグライブラリが用意されています。

表1 Strutsのタグライブラリ
タグライブラリ名 説明
html テキストボックスやボタンなどのHTMLの入力部品を表す
bean リクエストオブジェクトやセッションオブジェクト、サーブレットコンテキストオブジェクトに格納されたJavaBeansに対して操作を行う
logic JSPなどで、判定処理やループ処理の際に使う
tiles 複数のJSPで共通に使用できるテンプレート機能を提供する
nested 格納されたJavaBeansに関連付けられている入れ子状態のJavaBeansに対して操作を行う

 それぞれのタグライブラリには複数のタグが用意されています。それぞれの用途によって使い分けたり、複数のタグを組み合わせることで自分の思いどおりの画面を作成できます。

 それぞれのタグライブラリの一覧は以下になります。htmlタグライブラリの具体的イメージやコード例は後述しますが、下記表2はインデックスになっています。

表2 htmlタグライブラリの主なタグ
タグ 説明
<html:html> 標準HTMLの<html>タグと同様の役割を果たす
<html:text> テキストフィールドを生成
<html:password> パスワードのフィールドを生成
<html:textarea> 複数行のテキストエリアを生成
<html:checkbox> チェックボックスを生成
<html:multibox> 1つで複数のデータを扱うチェックボックスを生成
<html:radio> ラジオボタンを生成
<html:select> ドロップダウンを生成
<html:option> ドロップダウン、リスト形式のメニューを生成
<html:link> ハイパーリンクを生成
<html:img> 画像を表示させるために生成
<html:button> ボタンを表示させるために生成
<html:image> 画像を使ったボタンを生成
<html:submit> サブミットボタンを生成
<html:hidden> Webブラウザ上には表示されないフィールドを生成(主に、値の保持などに使う)

表3 logicタグライブラリの主なタグ
タグ 説明
<logic:iterate> リストから値を1つずつ取り出して、設定する
<logic:equal> 比較を行うタグ(【比較したい値】=【指定した値】で真)
<logic:notEqual> 比較を行うタグ(【比較したい値】!=【指定した値】で真)
<logic:greaterEqual> 比較を行うタグ(【比較したい値】≧【指定した値】で真)
<logic:greaterThan> 比較を行うタグ(【比較したい値】>【指定した値】で真)
<logic:lessEqual> 比較を行うタグ(【比較したい値】≦【指定した値】で真)
<logic:lessThan> 比較を行うタグ(【比較したい値】<【指定した値】で真)
<logic:match> 受け取った値に、指定した値(文字列)が含まれているか判定するタグ(含まれている場合、真)
<logic:notMatch> 受け取った値に、指定した値(文字列)が含まれているか判定するタグ(含まれていない場合、真)
<logic:empty> JavaBeansのプロパティ値が、nullか空文字列かBeansの要素数が0であるかどうか判定するタグ(nullか空文字列か要素数0の場合、真)
<logic:notEmpty> JavaBeansのプロパティ値が、nullか空文字列かBeansの要素数が0であるかどうか判定するタグ(nullか空文字列か要素数0でない場合、真)

表4 beanタグライブラリの主なタグ
タグ 説明
<bean:define> JavaBeansのプロパティを読み取って、新しい変数として定義
<bean:parameter> HTTPリクエストパラメータの値を読み取り、新しい変数を定義
<bean:cookie> Cookieの値を読み取り、新しい変数を定義
<bean:header> HTTPヘッダの値を読み取り、新しい変数を定義
<bean:message> メッセージリソースからメッセージを検索して表示
<bean:write> JavaBeansのプロパティ値などを読み取り、出力を行う
<bean:include> リソースを読み込んでString変数に格納

表5 tilesタグライブラリの主なタグ
タグ 説明
<tiles:insert> 画面部品のJSPを、JSPに取り込む
<tiles:put> テンプレートファイルを読み込んで、テンプレートファイルの各場所に対してはめ込むファイルを指定

表6 nestedタグライブラリの主なタグ
タグ 説明
<nested:root> 共通に使うJavaBeansを指定
<nested:nest> 多階層になっているプロパティの値を簡単に取得

 これらのうち、今回はサンプルプログラムとして、一般的によく利用されるStrutsのhtmlタグを用いて実際に画面を作成します。

実際にStrutsタグを使ってみよう

 では、実際にStrutsタグを使った画面を作成して、Strutsのhtmlタグについて説明していきます。なお、今回のサンプルプログラムは、連載第2回で使用した「PKG」のワークスペースを使います。

今回のサンプルのソースコード

 まず、「PKG\Hello\pages」配下に下記のJSPファイルを作成してください。

Strutstag.jsp
<%@page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:html>
<body>
  <H1>StrutsHTMLタグ</H1>
  <html:form action="/hello" >
    <TABLE border="1" >
    <TR><TD>
      <TABLE border="1" >
      <TR><TH>テキストボックス(name)</TH>
        <TD><html:text property="name" /></TD></TR>
      <TR><TH>パスワード(password)</TH>
        <TD><html:password property="password" redisplay="false" /></TD>
      </TR>
      <TR><TH>テキストエリア(etc)</TH>
        <TD><html:textarea property="etc" /></TD></TR>
      <TR><TH>チェックボックス(check)</TH>
        <TD><html:checkbox property="check" />チェック</TD></TR>
      <TR><TH>ラジオボタン(radio)</TH>
        <TD>
          <html:radio property="radio" value="check" >ラジオ1</html:radio>
          <html:radio property="radio" value="check2" >ラジオ2</html:radio>
        </TD></TR>
      <TR><TH>ドロップダウン(select)</TH>
        <TD>
          <html:select property="select" value="Select1">
          <html:option value="Select1" >ドロップダウン1(デフォルト値)</html:option>
          <html:option value="Select2" >ドロップダウン2</html:option>
          <html:option value="Select3" >ドロップダウン3</html:option>
          </html:select>
        </TD></TR>
      <TR><TH>リンク(link)</TH>
        <TD>
          <html:link href="http://www.atmarkit.co.jp/fjava/rensai4/webjousiki01/webjousiki01_1.html"
            target="_blank">
            いまさら聞けない、Webアプリケーションの常識へ
          </html:link>
        </TD></TR>
      <TR><TH>イメージ(img)</TH>
        <TD><html:img page="/image/img1.gif" /></TD></TR>
      <TR><TH>ボタン(button)</TH>
        <TD><html:button property="noReAction" onclick="alert('ボタンが押されました')" />
        </TD></TR>
      <TR><TH>イメージボタン(image)</TH>
        <TD><html:image page="/image/img1.gif" property="imagebutton" /><BR>
        ※ボタンが押下されるとHelloページへ遷移します。
        </TD></TR>
      <TR><TH>Submitボタン</TH>
        <TD><html:submit value="送信"/><BR>
        ※ボタンが押下されるとHelloページへ遷移します。</TD></TR>
      </TABLE>
    </TD></TR>
    </TABLE>
  </html:form>
</dody>
</html:html>

 次に、今回追加したStrutstag.jspを参照するために、「PKG\Hello\Web-INF\src\hello\form」のHelloForm.javaを以下のように編集します。

HelloForm.java
public class HelloForm extends ActionForm {

    private String name;

    /*ここから*/
    private String password;
    private String etc;
    private boolean check;
    private String radio;
    private String select;

    /*ここまで追加*/

    /**
    *
    * @return
    */
    public String getName() {
        return name;
    }
    /**
    *
    * @param name
    */
    public void setName(String name) {
        this.name = name;
    }

    /*ここから*/
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEtc() {
        return etc;
    }
    public void setEtc(String etc) {
        this.etc = etc;
    }
    public boolean isCheck() {
        return check;
    }
    public void setCheck(boolean check) {
        this.check = check;
    }
    public String getRadio() {
        return radio;
    }
    public void setRadio(String radio) {
        this.radio = radio;
    }
    public String getSelect() {
        return select;
    }
    public void setSelect(String select) {
        this.select = select;
    }
    /*ここまで追加*/
}

 後は、JSPで参照している画像を表示させるため、「C:\PKG\Hello」配下に「image」フォルダを作り、「img1.gef」というファイル名で画像を設置します。これで、準備は完了です。

 次ページでは、作成したサンプルを動かし、それぞれの部品について解説します。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

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

メールマガジン登録

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