下面循环运行三次,并显示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>
答案 0 :(得分:1)
您的编码就像使用标准HTML <input type="radio" />
标记一样。
使用Struts2 <s:radio/>
标记时,会通过<input type="radio" />
属性生成HTML list
标记列表,因此无需迭代列表并为每个元素创建单选按钮
那就是说,
class
是cssClass
,get
和()
部分的情况下在OGNL中访问getter,listKey
属性和checked
属性指定value
元素。您的整个代码应替换为以下内容:
<s:radio list = "%{operativeMode}"
listKey = "%{code}"
listValue = "%{description}"
value = "%{operativeMode[0].code}"
name = "providerScheduleTO.contactMode"
cssClass = "opmode"
theme = "simple"
/>
另外看看