在做毕业设计时遇到批量传递数据问题,例如批量传递填空题,选择题的值,在这里记录一下:
首先新建Form表单;
package com.actionForm;
public class QuestionForm {
private int questionID; //问题ID
private String questionContent; //问题的题干
private String keyA; //答案A
private String keyB; //答案B
private String keyC; //答案C
private String keyD; //答案D
private String answer; //正确答案
private int examID; //考试试卷编号
生成get=、set方法.....
然后新建Action类
public class SubmintAnswersAction extends ActionSupport {
private List<QuestionForm> blankQuestions;
public void setBlankQuestions(List<QuestionForm> blankQuestions) {
this.blankQuestions = blankQuestions;
}
public List<QuestionForm> getBlankQuestions() {
return blankQuestions;
}
}
jsp页面中引用;
<s:iterator value="#request.blankQuestions" status="status" >
<tr >
<td width="9%" height="31">
<s:hidden name="%{'blankQuestions['+#status.index+'].questionID'}" > </s:hidden>
<s:property value="#status.index+1"></s:property>)</span>:</td>
<td width="38%"><<s:property value="questionContent" /></td>
<td width="3%"></td>
<td width="50%">
<s:textfield name="%{'blankQuestions['+#status.index+'].answer'}" >
</s:textfield>
</td>
</tr>
</s:iterator>
其中Jsp中引用的blankQuestions必须要与Action类中定义的List对象相同;
然后需要建一个资源文件,其作用是告诉框架在处理该 blankQuestions对象时,知道其是什么样的格式的;资源文件的名字为:StudentExaminationManagementAction-conversion.properties,且该文件要与使用该对象的action类必须要放在同一个文件夹下,例如在这里就必须要与 SubmintAnswersAction放在一个文件夹下;在该资源文件中有两个属性值
name= Element_blankQuestions value=form所在的包名;在这里要注意name 属性值必须要以"Element_"开头,后面跟着的是"blankQuestions"必须与自己Action中定义的List<>对象名字相同;