0

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

我能够做到这一点,但是我无法获取 servlet 中所有 3 个下拉列表的值。而不是获得 3 个差异值,输出重复第一个下拉列表的值。例如“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> 

在小服务程序中:

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<%i%>”这样的downdownlist名称,为每个downdownlist设置不同的id吗?因此我可以分别检索它们中的每一个???

4

1 回答 1

0

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

这就是为什么你得到john,john,john而不是john, ken, andy.

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

select在下面更改您的JSP

<select name="list<%=i%>"  >

for loopservlet下面

for(int i=0; i< member; i++)
{
    String names = request.getParameter("list1"+i);
    total += names + " , ";
}
于 2013-07-07T12:55:32.753 回答