【发布时间】:2013-04-21 13:51:41
【问题描述】:
<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(@ 987654326@) 并在地图中回答问题(例如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)
但它不起作用。如何使参数可变?
【问题讨论】:
标签: java struts2 session-variables ognl