我是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吗?因此,我可以单独检索它们中的每一个???
答案 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}}