我正在尝试将单选按钮ans1
的值分配给另一个变量ans_submit
。
<s:form action="ques2" namespace="/questions" theme="simple">
Question 1: <s:property value="#session.ques1.question"/><br/><br/>
<s:radio list="#session.ques1.option1" name="ans1" value="%{'option1'}" label="1. "/><br/>
<s:radio list="#session.ques1.option2" name="ans1" value="%{'option2'}" label="2. "/><br/>
<s:radio list="#session.ques1.option3" name="ans1" value="%{'option3'}" label="3. "/><br/>
<s:radio list="#session.ques1.option4" name="ans1" value="%{'option4'}" label="4. "/><br/>
<s:submit name="submit" value=" Next"/>
</s:form>
<s:set var="ans_submit" value="%{#ans1}" scope="session" />
但是当我在动作类中检索ans_submit
时,它会给出null
我必须将<s:set>
标记保留在<s:form>
标记之外。因为在我的模型中没有定义这样的变量。
我不想使用javascript!
答案 0 :(得分:0)
使用地图填充广播代码。
<s:radio name="ans1" list="#{'option1': '1. ','option2': '2. ','option3': '3. ','option4': '4. '}" />
在动作类中,您应该拥有ans1
的属性,在提交表单时将设置该值。此属性是每次发出新请求时创建的操作实例的本地属性。因此,您需要在会话中保存该值。
session.put("ans1", ans1);
现在,要从另一个操作中的会话中检索此值,您可以初始化ans1
属性
ans1 = (String) session.get("ans1");
或者您可以使用value
属性预设广播代码中的值。
<s:radio name="ans1" list="#{'option1': '1. ','option2': '2. ','option3': '3. ','option4': '4. '}" value="%{#session.ans1}"/>