基于Struts2的测验应用程序使用DB来获取问题和存储结果

时间:2012-11-03 04:01:10

标签: struts2

jsp文件

 <s:iterator value="questions" status="status">
   <table border="3px" bgcolor="yellow">
   <tr bgcolor="white" >
   <td nowrap><s:property value="QuestionNumber"/></td>
   <td nowrap><s:property value="Question"/></td>
   </tr>
   <tr>
   <td nowrap><input type="radio" name="<s:property value="QuestionNumber"/>" value="1"/><s:property value="Option1"/></td>
   <td nowrap><input type="radio" name="<s:property value="QuestionNumber"/>" value="2"/><s:property value="Option2"/></td>
   </tr>
   <tr>
   <td nowrap><input type="radio" name="<s:property value="QuestionNumber"/>" value="3"/><s:property value="Option3"/></td>
   <td nowrap><input type="radio" name="<s:property value="QuestionNumber"/>" value="4"/><s:property value="Option4"/></td>
   </tr>
   </table>
   <s:hidden> </s:hidden>
 </s:iterator>
 <s:hidden id="answers" value="answers"/>
 <s:submit name="submit" onclick="submitform()"/>
</s:form>

使用Action类从DB填充属性值。 我的问题是我想收集一个测验的列表答案,然后把它带到java类来评估得分。我无法理解如何做到这一点

我的数据库有问题表,其中包含选项和正确答案的问题列表。

我有一个问题Bean对象。

2 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。最简单的方法是实现ParameterAware,检查链接ParameterAware,然后你就可以获得所有这些参数:(我假设,QuestionNumber是你的bean的参数{{ 1}})

question

你可以将这一行放在一个循环中,这样你就可以获得所有的参数......

答案 1 :(得分:0)

你有一个private List<Question> questions;的动作,有Getter和Setter。

您填充JSP,从Getter中读取列表。

您可以使用OGNL将该列表从JSP发布回Action的Setter,以保持行详细信息。

为此,请使用Struts标记(<s:radio而不是<radio)并设置包含该行索引的名称。

例如,使用文本字段,而不是

 <s:iterator value="questions" status="status">
     <s:textfield name="question" />
 </s:iterator>

使用类似的东西(未经测试,可能需要一些调整)

 <s:iterator value="questions" status="status">
     <s:textfield name="questions[%{#status.index}].question" />
 </s:iterator>

只需根据您的收音机情况进行调整,

在操作中,您将收到完全填充的列表。

(您甚至可以验证发布的列表,如下所示:访问者验证者:不是您的情况,但值得了解。)