传很多参数是可以的,而且有很多的方式。但你见过一个页面上放几十个文本框的吗?为什么大家不那么做呢?典型的做法是使用一个列表页和一个编辑页。如果非要那么做,至少有两种方式:
1、所有语文编辑框使用同一个名字,所有数学编辑框使用同一个名字,在服务器端用 getParameterValues 方法取得用户提交的值(字符串数组)。问题是你怎么知道哪些值已经修改,而哪些没有被修改呢?因此你只能全部写入数据库。很恶心。2、对语文编辑框和数据编辑框分别编号,在服务器端用 getParameter 根据编号规则取得每个控件的值。但上述问题仍然存在,还是那么恶心。
1、所有语文编辑框使用同一个名字,所有数学编辑框使用同一个名字,在服务器端用 getParameterValues 方法取得用户提交的值(字符串数组)。问题是你怎么知道哪些值已经修改,而哪些没有被修改呢?因此你只能全部写入数据库。很恶心。2、对语文编辑框和数据编辑框分别编号,在服务器端用 getParameter 根据编号规则取得每个控件的值。但上述问题仍然存在,还是那么恶心。
显示效果如下:
学号 姓名 语文 数学
001 A 11 11 修改
002 B 22 22 修改
即每一行对应一个form
这样可以方便的对单个的行进行修改
<form>
for(int i=1;i<=row;i++)
{
out.println("<TR align=\"center\" class="+rowtype+">\r\n");
out.println("<TD> <input name=\"in"+i+"a\" type=\"text\" value=\"学号\"></TD>\r\n");
out.println("<TD> <input name=\"in"+i+"b\" type=\"text\" value=\"姓名\"></TD>\r\n");
out.println("<TD> <input name=\"in"+i+"c\" type=\"text\" value=\"语文\"></TD>\r\n");
out.println("<TD> <input name=\"in"+i+"d\" type=\"text\" value=\"数学\"></TD>\r\n");
out.println("<TR>\r\n");
}
<input name="hangshu" type="hidden" value="行数">
</form>
接受页
String xuesheng[][] = new String[4][100];
int i, k;
for (i = 0; i < 行数; i++)
{
k = i + 1;
xuesheng[0][i] = request.getParameter("in" + k + "a");
xuesheng[1][i] = request.getParameter("in" + k + "b");
xuesheng[2][i] = request.getParameter("in" + k + "c");
xuesheng[3][i] = request.getParameter("in" + k + "d");
}