0

私は1か月間JSPとサーブレットを初めて使用しますが、まだ不明な点がたくさんあります.. JSP内には、ドロップダウンリストがあり(内部の値はデータベースから取得されます)、数値で動的に作成されますたとえば、ユーザー キーが 3 の場合、この数字はセッションに保存され、3 ドロップダウン リストが生成されます。

これはできますが、サーブレットの 3 つのドロップダウン リストすべての値を取得できません。3 つの diff 値を取得する代わりに、出力は最初のドロップダウンリストの値を繰り返します。例 「ジョン、ケン、アンディ」の代わりに「ジョン、ジョン、ジョン」。

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%>」のようなダウンダウンリスト名を設定して、各ダウンダウンリストに異なる ID を設定できますか? したがって、それぞれを個別に取得できますか???

4

1 に答える 1

0

ループに入るservletたびに同じパラメータを取得しています。list1また、同じ属性でJSP作成する場合、dropdownlistname

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 に答える