0

我创建了一个 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 ..我无法检索会话属性“爱好”的所有值..它只给了我检查过的复选框的最后一个值..我在 ShowEmpDetails.jsp 页面中使用了这段代码。

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

请指导我..

4

4 回答 4

0

覆盖hobbies值。

尝试

 session.setAttribute("hobbies"+i, hobbies[i]);
于 2013-06-06T09:18:04.750 回答
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);
于 2013-06-06T09:19:14.223 回答
0

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

于 2013-06-06T09:17:23.297 回答
0

你正在覆盖hobbies价值。

您可以按JSON格式设置这些值,也可以简单地重新构造这些值,例如

String str=new String(" ");
for(int i=1;i<hobbies.length;i++)
        str=str + "," +hobbies[i];
session.setAttribute("hobbies", str);
于 2013-06-06T09:36:21.273 回答