获取在JSP中动态创建下拉列表的价值

时间:2013-07-07 11:37:21

标签: java jsp servlets

我是JSP和servlet的新手,为期一个月,我还有许多事情不确定。在JSP中,我有一个下拉列表(里面的值是从数据库中获取的),它将动态创建用户键入的数字。例如,3中的用户键,该数字将存储在会话中,并将生成3个下拉列表。

我能够做到这一点,但是我无法获取servlet中所有3个下拉列表的值。而不是获得3个diff值,输出重复第一个下拉列表的值。示例“john,john,john”而不是“john,ken,andy”。

JSP代码:

    <form action="Adding" method="post"> 
    <% 
    session = request.getSession();
    ProjectGroup projGrp1  = (ProjectGroup)session.getAttribute("PROJECTNAME");

    //getMaxMember is the int that user keyed in
    int staff =projGrp1.getMaxMember();

    for(int i = 0; i < staff; i++) {
     %>

     <select name="list1"  >

     <%@page import="sit.bean.*,sit.data.*"%>

    <%
    GroupTaskManager mgr3 = new GroupTaskManager();

    GroupTask[] at3 = mgr3.getCheckBox();
    for(int g = 0; g < at3.length; g++) {
    %>

  <option><%=at3[g].getStaffName()%></option>

 <%
  }
  %>
  </select>

  <%
  }
  %>
 <input type="submit" name="submit">
 </form> 

在servlet中:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

     HttpSession session = request.getSession();
    ProjectGroup projGrp = (ProjectGroup)session.getAttribute("PROJECTNAME");

            int member =  projGrp.getMaxMember();

    String total = null;
    for(int i=0; i< member; i++)
    {
        String names = request.getParameter("list1");
        total += names + " , ";
    }

    PrintWriter pw = response.getWriter();

    pw.write("<HTML><BODY>");
            pw.write(total);
            pw.write("</HTML></BODY>");

    pw.close();


} 

我可以将下拉列表名称设置为“list&lt;%i%&gt;”,为每个下行列表设置不同的ID吗?因此,我可以单独检索它们中的每一个???

1 个答案:

答案 0 :(得分:0)

servlet中,每次循环list1时都会获得相同的参数。 以及JSP创建具有相同dropdownlist属性的name

这就是您获得john,john,john而不是john, ken, andy的原因。

是的,您可以使用list<%i%>设置不同的ID以及名称

select

中更改JSP以下的<select name="list<%=i%>" >
for loop

servlet for(int i=0; i< member; i++) { String names = request.getParameter("list1"+i); total += names + " , "; } 以及

{{1}}