我创建了一个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: <%=session.getAttribute("hobbies")%><br>
请指导我..
答案 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);