<input type="radio" name="${questions.qid}" value="${questions.ans1}"
<s:if test="%{(#session.map.get(1)).equals(\'ans1\')}">checked</s:if>>
<s:property value="#attr.questions.ans1"/>
このコードquestions
には、質問オブジェクトを含むリストがあります
String question,ans1,ans2,ans3;
私のプログラムでは、次のようにブラウザに表示します
Question 1
(RadioButton) Answer 1
(RadioButton) Answer 2
(RadioButton) Answer 3
Question 2
(RadioButton) Answer 1
(RadioButton) Answer 2
(RadioButton) Answer 3
.
.
.
リストには複数の質問オブジェクトが含まれている可能性があるため、1 ページに 5 つの質問を表示するようにしました。私の問題は、(たとえば) ユーザーがページ 4 からページ 2 に移動する可能性があり、ユーザーがページ 2 でクリックした回答を再入力したいことです。したがって、アクション クラスで、HashMap
質問 ID ( qid
) を作成し、質問に回答します。 (例: ans2
) をマップに挿入し、このマップを というセッションに配置しますmap
。
上記のコードでは、使用します
<s:if test="%{(#session.map.get(1)).equals(\'ans1\')}">checked</s:if>
HTMLラジオタグで。qid
質問 ID ( )をハードコーディングしましたが1
、計画どおりに動作します。ただし、 の数値はget()
可変でなければなりません。それは私が使用したような実際の質問IDでなければなりません
name="$(questions.qid)"
パラメータを次のように入れてみました
#session.map.get(#attr.questions.qid)
しかし、うまくいきません。パラメータを変数にする方法は?