目次へ

6.4. checkboxタグ/multiboxタグ

checkboxタグおよびmultiboxタグは、いずれもチェックボックス(<input type="checkbox">)を生成するためのものです。前者はboolean型かString型のプロパティと関連付けて使用するのに対し、後者は配列(基本データ型かString)と関連付けて使用します。

checkboxタグ

以下はcheckboxタグの主要な属性です。checkboxタグはboolean型かString型のActionFormBean プロパティと関連付けて使用します。

属性名 必須 スクリプト
可能
説明

property

パラメータ名。ActionForm Beanのプロパティと対応している。プロパティの値によって、チェックボックスがデフォルトで選択状態かそうでないか決定される。

value

  パラメータの値。指定しない場合のデフォルト値は"on"。

対応するActionForm Beanのプロパティがboolean型である場合には、その値がtrueである時にチェックボックスはデフォルトで選択状態になります。またHTTPリクエストとして、「on」「true」「yes」のいずれかの値が送信された場合に、ActionForm Beanの該当プロパティにtrueが設定されます。

対応するプロパティがString型である場合には、その値が「on」「true」「yes」のいずれかである時に、チェックボックスはデフォルトで選択状態になります。またHTTPリクエストとして送信された値は、そのままActionForm Beanの該当プロパティに設定されます。

以下はActionForm Beanと対応したcheckboxタグの例です。チェックボックスが選択されていると、QuestionnaireFormのsetQuestion1メソッドにtrue値が渡されます。

public class QuestionnaireForm extends ActionForm{
  ...
  public boolean getQuestion1(){ ... }
  public void setQuestion1(boolean question1){ ... }
  ...
}
...
<html:checkbox property="question1" value="true" />はい
...

multiboxタグ

multiboxタグは配列のActionForm Bean プロパティと関連付けて使用します。以下は主要な属性一覧です。

属性名 必須 スクリプト
可能
説明

property

パラメータ名。ActionForm Beanのプロパティと対応している。プロパティの値によって、チェックボックスがデフォルトで選択状態かそうでないか決定される。

value

  パラメータの値。指定しなかった場合には、ボディ部に指定した値が使用される。

対応する配列に、指定したパラメータの値が含まれている場合には、チェックボックスはデフォルトで選択状態になります。以下はActionForm Beanと対応したmultiboxタグの例です。

public class QuestionnaireForm extends ActionForm{
  ...
  public String[] getQuestion2(){ ... }
  public void setQuestion2(String[] question2){ ... }
  ...
}
...
<html:multibox property="question2" value="answer1" />キャンディー
<html:multibox property="question2">answer2</html:multibox>チョコレート
...

上記を実行すると以下のようなHTMLが生成されます。パラメータの値として日本語を使用する場合には、サーブレット側で文字のエンコーディング変換が必要な事を忘れないようにして下さい。

...
<input type="checkbox" name="question2" value="answer1">キャンディー
<input type="checkbox" name="question2" value="answer2">チョコレート
...

checkboxは1つの選択肢、multiboxは複数の選択肢で使用する事を前提としています。

(実習課題4)

以下のWebアプリケーションを、Strutsを用いて作成しなさい。

  • checkboxタグとmultiboxタグのそれぞれを使用したHTMLフォームを作成する事。
  • multiboxタグのパラメータを受け取るActionForm Beanのプロパティはint型配列とする事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp