2013-06-06 119 views
0

我创建了一个GetEmployeeDetails.jsp页面,其中我使用名称,年龄,兴趣等详细信息。 以及从那里我转发到一个sevlet,使用getParameter()返回这些值.. my问题是“嗜好”的形式使用复选框喜欢编程,唱歌,sleeping..when我转发此页到一个servlet我可以retrive这些值,并设置为这样的会话对象:Retriving value of a checkbox

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> 

请指导我..

回答

0

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

+0

YAA我得到了..但什么解决办法吗? – user2412380

0

覆盖hobbies值。

尝试

session.setAttribute("hobbies"+i, hobbies[i]); 
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); 
+0

thanxx..its working :) – user2412380

+0

@ user2412380然后我建议你选择正确的答案......这样做,你不会收到更多不必要的答案;) –

0

你正在覆盖hobbies的值。

您可以在JSON格式这些值或者干脆重新构造这些值像

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