检索复选框的值

时间:2013-06-06 09:13:13

标签: java jsp servlets

我创建了一个GetEmployeeDetails.jsp页面,其中包含名称,年龄,爱好等详细信息。 从那里我转发到一个sevlet,使用getParameter()来回复这些值。 我的问题是表单中的“爱好”使用复选框,如编程,唱歌,睡觉......当我将此页面转发给servlet时,我可以检索这些值并设置为会话对象,如下所示:

String[] hobbies = request.getParameterValues("Hobbies");
        for(int i=0;i<hobbies.length;i++){
        session.setAttribute("hobbies", hobbies[i]);
        }

但是当我想在下一个jsp页面中显示这些员工详细信息时问题就出现了,即ShowEmpDetails.jsp ..i无法检索会话属性“爱好”的所有值...它只给出了我的复选框的最后一个值检查.. 我在ShowEmpDetails.jsp页面中使用了这段代码..

your hobbies:&nbsp;<%=session.getAttribute("hobbies")%><br>

请指导我..

4 个答案:

答案 0 :(得分:0)

你正在覆盖会话属性“爱好”。它只包含一个值(最后设置的值),而不是整个列表。

答案 1 :(得分:0)

覆盖hobbies值。

尝试

 session.setAttribute("hobbies"+i, hobbies[i]);

答案 2 :(得分:0)

在你的循环中,你只保存爱好的最后一个值......

要保存所有可以设置为会话变量的ArrayList:

String[] hobbies = request.getParameterValues("Hobbies");
         ArrayList<String> aux=new ArrayList<>();
         for(int i=0;i<hobbies.length;i++){
             aux.add(hobbies[i]);
         }
         session.setAttribute("hobbies", aux);

答案 3 :(得分:0)

您正在覆盖hobbies值。

您可以设置JSON格式的这些值,或者只是重新构建这些值,如

String str=new String(" ");
for(int i=1;i<hobbies.length;i++)
        str=str + "," +hobbies[i];
session.setAttribute("hobbies", str);