获取表单数据!!!!(Struts1)

heroleader 2012-07-04 04:46:17
一个考试系统,页面上一共有100道单选题,,这些题都是从数据库里面读取的,循环输出到页面上显示的,现在你在页面上做完

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

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

了!!!
...全文
338 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
巽谷雨 2012-07-06
  • 打赏
  • 举报
回复
如果配置正确的话,提交时候就注入的form里ile
heroleader 2012-07-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

试题是从数据库随机读取,那么你的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是你……
[/Quote]


给点具体代码。。。。。。
地雷 2012-07-05
  • 打赏
  • 举报
回复
ID不能设为一致吧,一致的话如何知道答案对应哪道题目?
地雷 2012-07-05
  • 打赏
  • 举报
回复
试题是从数据库随机读取,那么你的radio的ID应该可以关联到试题。然后你在js里循环读取所有的radio,把id和对应的值都取出来。到javabean里面再读取。

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


或者在JS函数里面,加java代码,添加到map或者list中,传到后面去读。
方法比较笨啊,抛砖引玉
hotsaysauce2 2012-07-05
  • 打赏
  • 举报
回复
前台的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");
}
pewang 2012-07-04
  • 打赏
  • 举报
回复
查看一下actionform Map 属性的用法吧
heroleader 2012-07-04
  • 打赏
  • 举报
回复
这是试卷页面,,我要怎么样获取这些题的答案????传到form里面(Struts1的form)

<form action = "/ceping/getAnswerAction.do" method = "post">

<br/>
<%
int i;
DataStore data = (DataStore)request.getAttribute("examdata");
request.setAttribute("number",data.rowCount());
%>
<%
for(i= 0;i<data.rowCount();i=i+3){

%>
<table border = "1" class="table-form">
<tr class="caption">
<td><input type = "hidden" name = "questionid" value= "<%=data.getInt(i,"questionid") %>"><%=data.getInt(i,"questionnum")%>.<%=data.getBlob(i,"theme")%></td>
</tr>
<tr>
<td><input type = "radio" name= "choose" value = "A"><%=data.getBlob(i,"optionsname")%>.<%=data.getBlob(i,"optionsvalue")%></td>
</tr>
<tr>
<td><input type = "radio" name= "choose" value = "B"><%=data.getBlob(i+1,"optionsname")%>.<%=data.getBlob(i+1,"optionsvalue")%></td>
</tr>
<tr>
<td><input type = "radio" name= "choose" value = "C"><%=data.getBlob(i+2,"optionsname")%>.<%=data.getBlob(i+2,"optionsvalue")%></td>
</tr>
</table>
<br/>
<%
}
%>
<table width = "100%">
<tr align = "right">
<td><input type = "submit" value = "提交试卷"/></td>
</tr>
</table>
</form>
heroleader 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

那就用<input type="radio" id="radioxx" ... />好了,
id都一样,
在后台用数组获取,数组的长度就是题目的数量。

id都一样的话,,那不是就获取到了一个值,,他不是checkbox啊
heroleader 2012-07-04
  • 打赏
  • 举报
回复
四楼,,你没理解我啥意思,,我是存储考生做的答案,,页面上试题是从数据库读取出来的,,循环读取出来的,然后我要接收考生做的答案,,怎么接收(题的数量不确定),,
brightyq 2012-07-04
  • 打赏
  • 举报
回复
可以设置一个formbean,把每个radio都在这个formbean中定义属性,建立get,set方法。
然后在action中得到页面提交过来的form,然后都过form.getxxx()来得到每一个radio的值。
当然如果页面比较大,这个formbean也相应会变的很大。

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


之后整理存入数据库。

其它也可以不存进数据库,就把页面作为一个文件保存下来。
菖蒲老先生 2012-07-04
  • 打赏
  • 举报
回复
那就用<input type="radio" id="radioxx" ... />好了,
id都一样,
在后台用数组获取,数组的长度就是题目的数量。

[Quote=引用 3 楼 的回复:]

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

题量是不确定的,
[/Quote]
daxiang253 2012-07-04
  • 打赏
  • 举报
回复
这个是你自己数据的建的不合理
先要把数据库建合理
差出来就很容易
不可能每次都一百道题查出来 和一百道题的答案查出来吧
heroleader 2012-07-04
  • 打赏
  • 举报
回复
对了。。。忘说了,,,不是一百道题,,题量是不确定的,以后可能还要往数据库添加试题的,,

题量是不确定的,
m540920181 2012-07-04
  • 打赏
  • 举报
回复
你可以创建一个数据,给这100道题分别给个标识,当然放在from 中,在后台操作用也要使用数组接收,就可以了...
菖蒲老先生 2012-07-04
  • 打赏
  • 举报
回复
找到相应的jsp页面,看100道题的radio的id是不是一致的,
不一致在后台直接 form.getRadio1(),form.getRadio2。。。就可以了,
要用的是radiolist之类的,后台需要用数组接前台的值,
然后数组的每个元素就是相应的答案了。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧