jsp提交表单可以一次插入多行数据吗?

时间:2022-09-20 19:41:02
   大家好!!最近在搞一个调查问卷的网站。我简单地说说情况。
现在有3个主要数据表:
1.用户表(y_id,name,password)
2.问题表(w_id,title,A,B,C,D)
3.答案表(d_id,y_id,w_id,answer)

   答案表中y_id,w_id是外键,answer是答案,就是储存abcd的。(或者有人说这样设计数据库合理,会很费空间,但是我为了方面之后的多维数据分析。因为我不需要计算分数,要想知道每个人每一题选了那个选项,而且问题题目数量是不固定的)
假如大家有好的设计方法请赐教!!谢谢!

    现在我有这样的问题,就是不知道如何才可以在jsp页面了提交一次表单可以插入多行数据。
    举个例说吧:假如一份问卷有10个题目,一个人做了这份问卷,就相当于要插入10行数据。我如何才可以做到呢?我希望jsp页面只有一个提交按键就可以实现了!!大家有办法吗?谢谢大家了!!

21 个解决方案

#1


用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!

#2


引用 1 楼 robyjeffding 的回复:
用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!


    我刚刚看到这样的方法,应该可以吧!我尝试一下!不过我的是单选题,假如表单属性名相同,就只能提交一个数据了!!如何可以jsp页面提交多条数据呢?

#3


有人帮我解决吗?单选题,如何可以一次保存多条数据呢?

#4


学习了,帮顶.......

#5


帮顶

#6


顶一楼的。

#7


引用 2 楼 a346848110 的回复:
引用 1 楼 robyjeffding 的回复:
用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!


    我刚刚看到这样的方法,应该可以吧!我尝试一下!不过我的是单选题,假如表单属性名相同,就只能提交一个数据了!!如何可以jsp页面提交多条数据呢?


要的就是表单属性名相同,不然,还需要用getParameterValues吗?
记住:问题和答案既可以页面进行绑定,也可在后台进行处理,对应好就行,不然就乱套了,没有作出选择的,判断一下,用Null代替!继续努力!

#8


你想的复杂了啊,你得到所有的答案以后就可以插入数据库中,最主要的是你生成问卷的时候,为每个题目生成的name属性的名称,你在取的时候根据这个规则去取答案啊!

#9


可以的,用request.getParameteValues方法接收多重数据
或者自己写个按笔数收集页面数据的类,
然后在后台循环遍历就ok了

#10


前台JSP页面 用容器保存用户修改的ID


id1   1    add
id2   2    edit
id3   2    delete

把数据传到后台JAVA 根据标志位处理。

#11


做个隐藏项,用JS脚本,把每个题目的ID,选择的值赋给隐藏项,然后你就可以处理这个字符串啊。
例如:第一题ID是1,选择的值是A,第二题ID是2,选择的值是B,,你就可以定义下面的格式值,1-A/2-B,放到隐藏想,然后用jsp或action去处理这个字符串,你要处理简单,必须用到js脚本。不知道你满意不。

#12


用每一个表单表示一道题,再JS一个一个 的提交,不知可否?!

#13


我用的是struct架构,表单中的属性名必须和actionform中的属性名相同的,可以把属性名变为不同吗?

#14


像你这种要动态的,肯定用Struts不好做,你就直接用html的标签+js去处理前段,后台你用action去实现你的业务就行了。

#15


HttpServletRequest里有个以request.getParameterNames()的方法,

这个方法有所有的request里提交的prameter的名字。

拿到这个方法以后,再可以使用request.getParameterValues(parametername)

这个方法得到这个parameter对应的参数值,这里之所以用getParameterValues而不是getParameterValue了,是因为你这里有一些多选题,用getParameterValue就拿的不正确了。

#16


引用 15 楼 inthirties 的回复:
HttpServletRequest里有个以request.getParameterNames()的方法,

 这个方法有所有的request里提交的prameter的名字。

 拿到这个方法以后,再可以使用request.getParameterValues(parametername)

 这个方法得到这个parameter对应的参数值,这里之所以用getParameterValues而不是getParameterValue了,是因为你这里有一些多选题,用getParameterValue就拿的不正确了。


request.getParameterNames()返回的是一个enumeration类型的变量。遍历她。

#17


引用 1 楼 robyjeffding 的回复:
用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!



同意。

#18


学习

#19


感觉楼上的方法都有些牵强哦,reques.getParameterValues()是用于诸如复选框这样的可以多选的的值的,还有HttpServletRequest中的request.getParamNames()应该是获取标签的值的

#20


   你可以在jsp页面的表单中利用i++把单选名控制不同,然后提交到java文件处理时再利用一个for循环进行插入,这样就可以了!!

#21


高手出来帮个忙啊!

#1


用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!

#2


引用 1 楼 robyjeffding 的回复:
用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!


    我刚刚看到这样的方法,应该可以吧!我尝试一下!不过我的是单选题,假如表单属性名相同,就只能提交一个数据了!!如何可以jsp页面提交多条数据呢?

#3


有人帮我解决吗?单选题,如何可以一次保存多条数据呢?

#4


学习了,帮顶.......

#5


帮顶

#6


顶一楼的。

#7


引用 2 楼 a346848110 的回复:
引用 1 楼 robyjeffding 的回复:
用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!


    我刚刚看到这样的方法,应该可以吧!我尝试一下!不过我的是单选题,假如表单属性名相同,就只能提交一个数据了!!如何可以jsp页面提交多条数据呢?


要的就是表单属性名相同,不然,还需要用getParameterValues吗?
记住:问题和答案既可以页面进行绑定,也可在后台进行处理,对应好就行,不然就乱套了,没有作出选择的,判断一下,用Null代替!继续努力!

#8


你想的复杂了啊,你得到所有的答案以后就可以插入数据库中,最主要的是你生成问卷的时候,为每个题目生成的name属性的名称,你在取的时候根据这个规则去取答案啊!

#9


可以的,用request.getParameteValues方法接收多重数据
或者自己写个按笔数收集页面数据的类,
然后在后台循环遍历就ok了

#10


前台JSP页面 用容器保存用户修改的ID


id1   1    add
id2   2    edit
id3   2    delete

把数据传到后台JAVA 根据标志位处理。

#11


做个隐藏项,用JS脚本,把每个题目的ID,选择的值赋给隐藏项,然后你就可以处理这个字符串啊。
例如:第一题ID是1,选择的值是A,第二题ID是2,选择的值是B,,你就可以定义下面的格式值,1-A/2-B,放到隐藏想,然后用jsp或action去处理这个字符串,你要处理简单,必须用到js脚本。不知道你满意不。

#12


用每一个表单表示一道题,再JS一个一个 的提交,不知可否?!

#13


我用的是struct架构,表单中的属性名必须和actionform中的属性名相同的,可以把属性名变为不同吗?

#14


像你这种要动态的,肯定用Struts不好做,你就直接用html的标签+js去处理前段,后台你用action去实现你的业务就行了。

#15


HttpServletRequest里有个以request.getParameterNames()的方法,

这个方法有所有的request里提交的prameter的名字。

拿到这个方法以后,再可以使用request.getParameterValues(parametername)

这个方法得到这个parameter对应的参数值,这里之所以用getParameterValues而不是getParameterValue了,是因为你这里有一些多选题,用getParameterValue就拿的不正确了。

#16


引用 15 楼 inthirties 的回复:
HttpServletRequest里有个以request.getParameterNames()的方法,

 这个方法有所有的request里提交的prameter的名字。

 拿到这个方法以后,再可以使用request.getParameterValues(parametername)

 这个方法得到这个parameter对应的参数值,这里之所以用getParameterValues而不是getParameterValue了,是因为你这里有一些多选题,用getParameterValue就拿的不正确了。


request.getParameterNames()返回的是一个enumeration类型的变量。遍历她。

#17


引用 1 楼 robyjeffding 的回复:
用request.getParameteValues方法接收多重数据,
返回一个数组,循环此数组,在里面做添加的业务即可!



同意。

#18


学习

#19


感觉楼上的方法都有些牵强哦,reques.getParameterValues()是用于诸如复选框这样的可以多选的的值的,还有HttpServletRequest中的request.getParamNames()应该是获取标签的值的

#20


   你可以在jsp页面的表单中利用i++把单选名控制不同,然后提交到java文件处理时再利用一个for循环进行插入,这样就可以了!!

#21


高手出来帮个忙啊!