プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPでチェックボックスのデータを送信・取得する方法をわかりやすく解説

チェックボックスとは

チェックボックスは、複数の選択肢の中から複数の項目を選ばせたい場合に使用されるフォーム要素です。ラジオボタンが「1つだけ選択」であるのに対し、チェックボックスは「0個以上の複数選択」が可能な点が大きな特徴です。

ここでは、HTMLフォームでチェックボックスを作成し、そのデータをJSP側で受け取る基本的な方法を紹介します。

ステップ1:チェックボックス付きフォームの作成(CheckBox.htm)

まず、2つのチェックボックスを持つHTMLフォームの例を見てみましょう。ファイル名は CheckBox.htm とします。

<html>
   <body>
      <form action = "main.jsp" method = "POST" target = "_blank">
         <input type = "checkbox" name = "maths" checked = "checked" /> Maths
         <input type = "checkbox" name = "physics" /> Physics
         <input type = "checkbox" name = "chemistry" checked = "checked" /> Chemistry
         <input type = "submit" value = "Select Subject" />
      </form>
   </body>
</html>

このコードでは、次のようなポイントがあります。

  • action = "main.jsp":送信ボタンが押されると、フォームの内容が main.jsp にPOSTメソッドで送信されます。
  • checked = "checked":初期状態でチェック済みにしたい項目に指定します(例では Maths と Chemistry)。
  • 各チェックボックスには、JSP側で値を取得するための一意な name 属性が設定されています。

上記のコードを実行すると、Maths(数学)・Physics(物理)・Chemistry(化学)の3つのチェックボックスと送信ボタンが表示されたフォームが生成されます。

ステップ2:JSPでチェックボックスの値を受け取る(main.jsp)

次に、ブラウザから送信されたチェックボックスの入力を処理する main.jsp のプログラムです。リクエストパラメータの取得には request.getParameter() を使用します。

<html>
   <head>
      <title>Reading Checkbox Data</title>
   </head>
   <body>
      <h1>Reading Checkbox Data</h1>
      <ul>
         <li><p><b>Maths Flag:</b>
            <%= request.getParameter("maths")%>
            </p></li>
         <li><p><b>Physics Flag:</b>
            <%= request.getParameter("physics")%>
            </p></li>
         <li><p><b>Chemistry Flag:</b>
            <%= request.getParameter("chemistry")%>
            </p></li>
      </ul>
   </body>
</html>

request.getParameter("名前") は、指定した name 属性に対応するフォームデータを取得するメソッドです。

実行結果

上記のプログラムを実行すると、次のような出力が得られます。

Reading Checkbox Data

  • Maths Flag : on

  • Physics Flag: null

  • Chemistry Flag: on

結果の読み方と注意点

  • チェックされている場合: パラメータの値はデフォルトで on という文字列になります。
  • チェックされていない場合: ブラウザはその項目を一切送信しないため、request.getParameter() の戻り値は null になります。

そのため、実際の開発では null チェックを行い、以下のように判定するのが一般的です。

String maths = request.getParameter("maths");
if (maths != null) {
    // チェックされている場合の処理(値は "on")
} else {
    // チェックされていない場合の処理
}

また、value 属性を指定すれば、on 以外の任意の値を受け取ることも可能です。例えば <input type="checkbox" name="subject" value="math"> とした場合、チェック時には math という値が送信されます。この仕組みを理解しておくと、より柔軟なフォーム処理が実現できます。

  1. 【Android開発】SQLiteデータベースを使ってデータを保存する方法をステップごとに解説

    はじめに:AndroidにおけるSQLiteとはSQLiteは、デバイス上のテキストファイルにデータを保存できるオープンソースのSQLデータベースです。AndroidにはSQLiteが標準で組み込まれており、リレーショナルデータベースの主要な機能をすべてサポートしています。最大の特徴は、JDBCやODBCのように接続設定を確立する必要がない点です。そのため、少ないコード量で簡単にデータの保存・読み出しが行えます。この記事では、「名前」と「給与」を入力してSQLiteデータベースに保存するシンプルなサンプルアプリを通じて、具体的な実装方法をステップごとに解説します。ステップ1:新しいプロジェクト

  2. Androidでデータを消費しているアプリを特定する方法【Check Data Usage活用ガイド】

    Androidスマートフォンで、あまり使っていないつもりなのにモバイルデータがすぐに足りなくなる——そんな経験はありませんか?これは、外出先でインターネットを利用する多くのユーザーが直面する共通の悩みです。原因のひとつは、一部のアプリがバックグラウンドでモバイルデータを消費していることに、ユーザー自身が気づいていないこと。だからこそ、Androidデバイスで最もデータを消費しているアプリを特定することが重要です。無料のサードパーティ製アプリ「Check Data Usage」なら、「どのアプリが一番データを消費しているのか?」という疑問にすぐ答えてくれます。 Systweak Software