<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
.
.
.
该列表可能包含多个问题对象,因此我将其设置为每页显示 5 个问题。我的问题是(例如)用户可能从第 4 页转到第 2 页,我想重新填写用户在第 2 页中单击的答案。所以在操作类中,我创建了一个HashMap
问题 ID(qid
)并回答了问题(例如ans2
)放入地图,然后将此地图放入名为map
.
在上面的代码中,我使用
<s:if test="%{(#session.map.get(1)).equals(\'ans1\')}">checked</s:if>
在 HTML 单选标记中。我将问题 id ( qid
) 硬编码为1
,它按计划工作。但是中的数字get()
必须是可变的。那一定是我在
name="$(questions.qid)"
我尝试将参数设置为
#session.map.get(#attr.questions.qid)
但它不起作用。如何使参数可变?