1

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クラスに取得したいということです。私はそれを行う方法としてのアイデアを得ることができません

私のDBには、オプションと正解を含む質問のリストを含む質問テーブルがあります。

質問Beanオブジェクトがあります。

4

2 に答える 2

0

これを行うには多くの方法があります。最も簡単な方法は、実装しParameterAware、リンクParameterAwareをチェックアウトすることです。そうすれば、次のようにすべてのパラメーターを取得できますQuestionNumberquestion

String param1 = parameters.get(question.getQuestionNumber);

この行をループに入れることができるので、すべてのパラメーターを取得できます...

于 2012-11-03T10:08:38.797 に答える
0

private List<Question> questions;、ゲッターとセッターを使用したアクションがあります。

ゲッターからリストを読み取ってJSPにデータを入力します。

行の詳細に関する情報を保持するためにOGNLを使用することにより、そのリストをJSPからアクションのセッターにポストバックできます。

これを行うには、(<s:radioの代わりに<radio)Strutsタグを使用し、行のインデックスを含む名前を設定します。

たとえば、代わりにテキストフィールドを使用します

 <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>

これをラジオケースに合わせるだけです。

アクションでは、完全に入力されたリストを受け取ります。

(このusignVisitorバリデーターのように投稿されたリストを検証することもできます:あなたのケースではありませんが、知っておく価値があります)。

于 2012-11-03T19:21:39.200 に答える