所以,我有一个表单,我有两个复选框,都可以选中,但当我选中这两个数据不进入数据库只有第一个值插入。
我尝试使用getParameterValues,也给了它作为bean数组,也尝试了一些jquery函数,但无法实现这一点,可以有人请帮助吗?
我知道已经有很多例子了,但是没有一个对我有用。
我将在下面添加代码。
是控制器servlet
public void insertProduct(HttpServletRequest request, HttpServletResponse response)throws SQLException, IOException, ClassNotFoundException, ServletException, ParseException
{
String code = request.getParameter("code");
String name = request.getParameter("name");
int price = Integer.parseInt(request.getParameter("price"));
String home_main_category = request.getParameter("home_main_category");
String home_sub_category = request.getParameter("home_sub_category");
String p_avail = request.getParameter("p_avail");
String p_act = request.getParameter("p_act"); // This is the checkbox
String pro_exp_date = request.getParameter("pro_exp_date");
String pro_manufacture_date = request.getParameter("pro_manufacture_date");
Product newProduct = new Product(code,name,price,home_main_category,home_sub_category,p_avail,p_act,pro_exp_date,pro_manufacture_date);
try
{
productDAO.insertProduct(newProduct);
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
RequestDispatcher rd = request.getRequestDispatcher("CreateProduct.jsp");
rd.forward(request,response);
}
我猜,问题是与形式重复的名称-p_act
:
<input type = "checkbox" name = "p_act" value = "In_Stock" >
<input type = "checkbox" name = "p_act" value = "Out_Of_Stock" >
我认为你应该为每个位置做单独的名字(如p_act1
,p_act2
),并以某种方式将它们连接起来。例如:
String p_act = Stream.of(request.getParameter("p_act1"), request.getParameter("p_act2"))
.filter(Objects::nonNull)
.collect(Collectors.joining(","))