如何获取页面上复选框中的多个值添加到数据库中

 如下面的页面,我们如何将页面上的 爱好 复选框中的值添加到一个字段中呢??????

页面的代码片段:

               <tr>
			<td>爱好:</td>
			<td>
				<input type="checkbox" name = "hobby"value = "游泳">游泳
				<input type="checkbox" name = "hobby"value = "篮球">篮球
				<input type="checkbox" name = "hobby"value = "足球">足球
				<input type="checkbox" name = "hobby"value = "看书">看书
				<input type="checkbox" name = "hobby"value = "写字">写字
			</td>
		</tr>

如果使用平时我们使用的getParameter();只能获取第一个值,  篮球 ,后面的 看书 写字   是无法获取的

String hobby = request.getParameter("hobby");

要换另一个方法  getParameterValues("hobby");

String [] h  = request.c("hobby");

这个方法的返回值是数组,然后把这个数租进行转换成string类型

String hobby = Arrays.toString(h);

转换之后的结果是     [篮球,看书,写字]

存入数据库时,要把两边的中括号去掉     即:  [篮球,看书,写字] --- >篮球,看书,写字  使用substring()完美解决中括号问题

hobby = hobby.substring(1, hobby.length()-1);

这时问题就完美解决了;附上完整的代码

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");	
		try {
			//1. 获取客户端提交上来的数据
			String sname = request.getParameter("sname"); //sname:zhangsan
			String gender = request.getParameter("gender");
			String phone = request.getParameter("phone");
			String birthday = request.getParameter("birthday"); // 1989-10-18
			String info = request.getParameter("info");
			//String hobby = request.getParameter("hobby");//hobby : 游泳,写字, 足球。
			String [] h  = request.getParameterValues("hobby");
//			[篮球,足球,写字] --- 篮球,足球,写字
			
			String hobby = Arrays.toString(h);
			hobby = hobby.substring(1, hobby.length()-1);
			
			//2. 添加到数据库
			//string -- date
			Date date= new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
			
			Student student = new Student(sname, gender, phone, hobby, info, date);
			StudentService service = new StudentServiceImpl();
			service.insert(student);
			
			//3. 跳转到列表页
			//再查一次数据库,然后再装到作用域中 ,然后再跳转。
			//这里是直接跳转到页面上, 那么这个页面会重新翻译一次,上面的那个request的请求存放的数据是没有了。 
			//request.getRequestDispatcher("list.jsp").forward(request, response);			
			//servlet除了能跳jsp之外。 还能跳servlet
			request.getRequestDispatcher("StudentListServlet").forward(request, response);			
		} catch (Exception e) {
			e.printStackTrace();
		}
	
		
发布了11 篇原创文章 · 获赞 4 · 访问量 181

猜你喜欢

转载自blog.csdn.net/liulianzi_147/article/details/104905225