1 (チェックあり) と 0 (チェックなし) の形式で保存した mysql からチェックボックスの値を取得したいのですが、それを取得する方法がわかりません。
これが私のjspとサーブレットのコードです:
HobbiesTest.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="HobbiesTestServlet" method="post">
<input type = "checkbox" name = "Hobbies" value = 'Dancing' >Dancing
<input type = "checkbox" name = "Hobbies" value = 'Reading'>Reading
<input type = "checkbox" name = "Hobbies" value = 'Singing' >Singing
<input type = "checkbox" name = "Hobbies" value = 'Programming'>Programming
<input type = "checkbox" name = "Hobbies" value = 'Sleeping'>Sleeping
<input type = "submit" value = 'Submit'>
</form>
</body>
</html>
趣味TestServlet.java
package com.fulcrum.EmpForm;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HobbiesTestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public HobbiesTestServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int danceCheck = 0;
int singCheck = 0;
int readCheck = 0;
int programCheck = 0;
int sleepCheck = 0;
List<String> hobbiesList = new ArrayList<String>();
String[] hobbies = request.getParameterValues("Hobbies");
if(hobbies != null){
for(int i=0;i<hobbies.length;i++){
System.out.println("hobbies are"+hobbies[i]);
hobbiesList.add(hobbies[i]);
}
}
if(hobbiesList.contains("Dancing")){
danceCheck = 1;
}
if(hobbiesList.contains("Reading")){
readCheck = 1;
}
if(hobbiesList.contains("Singing")){
singCheck = 1;
}
if(hobbiesList.contains("Programming")){
programCheck = 1;
}
if(hobbiesList.contains("Sleeping")){
sleepCheck = 1;
}
System.out.println(danceCheck);
System.out.println(readCheck);
System.out.println(singCheck);
System.out.println(programCheck);
System.out.println(sleepCheck);
}
}
私のデータベースには、dance、read、sing、program、sleep などの列があります...ここでは、データベース挿入コードを含めていませんが、動作することはわかっています..値が 1 であるデータベースからそれらの列名を取得する方法を知りたかっただけですjspページでユーザーに表示します。