【问题标题】:Get value of <s:set> variable in radio element struts2获取单选元素 struts2 中 <s:set> 变量的值
【发布时间】:2016-01-25 15:58:45
【问题描述】:

下面的循环运行了 3 次,并显示 3 个单选按钮,我的要求是默认检查第一个单选。

为此,我设置了一个&lt;s:if&gt; 条件并检查迭代器的索引是否为0,在一个“检查”变量中设置“真”。

现在我正在以checked="%{check}${#check}#check 之类的方式访问此检查变量,但期望结果不会出现。

只有最后一个收音机被选中

此外,如果我在循环内打印“check”变量,但在无线电之外像这样&lt;s:property value="%{check}"/&gt;,它会显示正确的值真、假、假。但是当我在&lt;s:radio&gt; 中使用这个变量时,它就不能正常工作了。

请帮助如何访问&lt;s:radio&gt; 中的这个“检查”变量?

<s:iterator value="operativeMode" var="mode" status="itStatus">
    <s:set var="check" value="false"/>
    <s:if test="#itStatus.index==0">
        <s:set var="check" value="true"/>
    </s:if> 

    <s:radio class="opmode" theme="simple" name="providerScheduleTO.contactMode"
     listValue="%{#mode.getDescription()}" list="%{#mode.getCode()}" %{check}
    />
    <br>       
</s:iterator>

【问题讨论】:

  • 您的单选按钮具有相同的名称。您只能检查组中的一个单选按钮,它是单选按钮的全部。

标签: html jsp struts2 radio-button struts-tags


【解决方案1】:

您的编码就像使用标准 HTML &lt;input type="radio" /&gt; 标签一样。

使用Struts2&lt;s:radio/&gt;标签时,通过list属性生成HTML&lt;input type="radio" /&gt;标签列表,因此无需迭代列表并为每个元素创建单选按钮。

也就是说,

  1. classcssClass
  2. 在没有get() 部分的情况下在OGNL 中访问getter,
  3. 您缺少listKey 属性,并且
  4. 必须通过value 属性指定checked 元素。

您的整个代码应替换为以下内容:

<s:radio     list = "%{operativeMode}" 
          listKey = "%{code}"
        listValue = "%{description}" 
            value = "%{operativeMode[0].code}" 
             name = "providerScheduleTO.contactMode" 
         cssClass = "opmode" 
            theme = "simple"              
/>

也可以看看

【讨论】:

  • 谢谢,这确实是在struts中使用radio的正确方法..!!
猜你喜欢
  • 1970-01-01
  • 2014-07-13
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
相关资源
最近更新 更多