日期:2014-05-19  浏览次数:20665 次

获取表单数据!!!!(Struts1)
一个考试系统,页面上一共有100道单选题,,这些题都是从数据库里面读取的,循环输出到页面上显示的,现在你在页面上做完

题,然后提交,我怎么使用struts1中的form接受表单里100道题的考生选择的答案,然后保存到数据

库;选题时是单选按钮“radio”,或者说,我可以用其它什么方法获取这些答案???,,先谢谢

了!!!

------解决方案--------------------
找到相应的jsp页面,看100道题的radio的id是不是一致的,
不一致在后台直接 form.getRadio1(),form.getRadio2。。。就可以了,
要用的是radiolist之类的,后台需要用数组接前台的值,
然后数组的每个元素就是相应的答案了。。
------解决方案--------------------
你可以创建一个数据,给这100道题分别给个标识,当然放在from 中,在后台操作用也要使用数组接收,就可以了...
------解决方案--------------------
那就用<input type="radio" id="radioxx" ... />好了,
id都一样,
在后台用数组获取,数组的长度就是题目的数量。

探讨

对了。。。忘说了,,,不是一百道题,,题量是不确定的,以后可能还要往数据库添加试题的,,

题量是不确定的,[size=24px][/size]

------解决方案--------------------
可以设置一个formbean,把每个radio都在这个formbean中定义属性,建立get,set方法。
然后在action中得到页面提交过来的form,然后都过form.getxxx()来得到每一个radio的值。
当然如果页面比较大,这个formbean也相应会变的很大。

如一种方法可以用request得到所有控件,然后循环取出每个控件的值
Java code
Enumeration enum = request.getParameterNames();
while(enum.hasMoreElement()){
   String name = enum.nextElement();
   String value = request.getParameter(name);
}

------解决方案--------------------
前台的ridio的name 设为一致 表单提交以后 后台用
String[] answer= request.getParameterValues("answer");
String answers = "";
kaoshi k = new kaoshi();
if (answer_Array != null) {
for (int i = 0; i < answer_Array.length; i++) {
xxx.save (answer_Array[i])//添加到数据库
)
}
} else {
answers= request.getParameter("answer");
}

------解决方案--------------------
试题是从数据库随机读取,那么你的radio的ID应该可以关联到试题。然后你在js里循环读取所有的radio,把id和对应的值都取出来。到javabean里面再读取。
JScript code

var obj = document.forms[0].elements;
//判断obj[i].style是否为radio
//obj[i].name是radio的id,obj[i].value是你要得到的题目对应的答案。
//然后拼起来,不过题量大的话,拼的方法不合适,可能会超过限制。