在无线电元素struts2中获取<s:set>变量的值

时间:2015-10-26 14:01:50

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

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

为此,我放了一个<s:if>条件并检查迭代器的索引是否为0,在一个“check”变量中设置为“true”。

现在,我在checked="%{check}${#check}#check中访问此检查变量,但希望结果不会到来。

只有最后一台电台正在检查

此外,如果我在循环中打印“check”变量但是在此<s:property value="%{check}"/>之外的无线电外部,则显示正确的值true,false,false。但是当我在<s:radio>中使用此变量时,它无法正常工作。

请帮助您在<s:radio>

中访问此“检查”变量的方法
<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>

1 个答案:

答案 0 :(得分:1)

您的编码就像使用标准HTML <input type="radio" />标记一样。

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

那就是说,

  1. classcssClass
  2. 在没有get()部分的情况下在OGNL中访问getter,
  3. 您缺少listKey属性和
  4. 必须通过checked属性指定value元素。
  5. 您的整个代码应替换为以下内容:

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

    另外看看