如何使用struts2 </s中的<s:set>将<s:radio>的值赋给另一个变量:set> </s:radio>

时间:2014-05-24 19:00:00

标签: java jsp session struts2 radio

我正在尝试将单选按钮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!

1 个答案:

答案 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}"/>