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

问题描述 投票:0回答:1

我正在尝试将单选按钮

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!

java jsp session radio-button struts2
1个回答
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}"/>
© www.soinside.com 2019 - 2024. All rights reserved.