【问题标题】:Retriving values of a checkbox检索复选框的值
【发布时间】:2013-06-02 05:26:39
【问题描述】:

我创建了一个 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>

请指导我..

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

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

    【讨论】:

    • 是的,我明白了..但是解决方案是什么?
    【解决方案2】:

    覆盖hobbies 值。

    试试

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

    【讨论】:

      【解决方案3】:

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

      要保存所有可以设置为会话变量的 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);
      

      【讨论】:

      • @user2412380 那么我建议你选择正确答案...这样做你不会收到更多不必要的答案;)
      【解决方案4】:

      您正在覆盖hobbies 值。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-07
        • 1970-01-01
        • 1970-01-01
        • 2010-11-05
        • 1970-01-01
        • 2013-10-15
        • 2017-01-09
        • 1970-01-01
        相关资源
        最近更新 更多