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对象。
答案 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>
只需根据您的收音机情况进行调整,
在操作中,您将收到完全填充的列表。
(您甚至可以验证发布的列表,如下所示:访问者验证者:不是您的情况,但值得了解。)