竹形誠司 ブログ
Java+MySQL+Tomcat    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
JSPにおけるチェックボックスの扱い(メモ)
by 竹形 誠司[takegata]
フォームにおけるチェックボックスの利用形態には大きく分けて2つあります。

複数の選択肢から複数の項目を選ぶ場合
フォームでは次のようにname属性が同じで、value属性の異なるチェックボックスを複数用意します。

<FORM ACTION="test1.jsp" METHOD="post">
  <INPUT TYPE="checkbox" NAME="item" VALUE="Bleatles">ビートルズ
  <INPUT TYPE="checkbox" NAME="item" VALUE="Rutles">ラトルズ
  <INPUT TYPE="checkbox" NAME="item" VALUE="Ramones">ラモーンズ
  <INPUT TYPE="submit" VALUE="送信">
</FORM>
受信側のJSPは次のようになります。
String[] aryItem = request.getParameterValues("item");
上のコードで、チェックされた項目が配列aryItemに入ります。一つもチェックされていない場合はaryItemはnullになるので、配列の要素にアクセスする前に、nullかどうかを調べる必要があります。

チェックの有無を調べる
次のようにフォーム上にチェックボックスを1つだけ用意し、JSP側ではチェックボックスがチェックされたかどうかだけを調べるというものです。

<FORM ACTION="test1.jsp" METHOD="post">
  <INPUT TYPE="checkbox" NAME="verify" VALUE="OK">よろしいですか?
  <INPUT TYPE="submit" VALUE="送信">
</FORM>
受信側のJSPは次のようになります。
String strVerify = request.getParameterValues("verify");
上のコードの strVerify が null かどうかを調べることによって、チェックされているかどうかを調べることができます。

チェックされている場合にはstrVerify にVALUE属性で指定された値が入りますが、実際にはこの値にはあまり意味はありません(nullでないことが分かれば十分なので)。IEやFirefoxでは、チェックボックスのVALUE属性を省略されている場合に "on" という文字列がVALUEとして送信されるようです。

ただ、HTML4.01の仕様書には、次のように書かれているので、タテマエ上は省略してはいけないのかも知れません。
It is optional except when the type attribute has the value "radio" or "checkbox".
w3cのバリデータでチェックした限りでは、VALUE属性が無くてもエラーにはなりませんでしたが。
参考:
http://validator.w3.org/#validate_by_input

投稿:竹形 誠司[takegata]/2008年 02月 13日 20時 09分 /更新:2008年 02月 13日 20時 23分