我需要显示一系列复选框,如果条件成功,我需要检查它们。以下是我的代码。我有一个区域,它是一个hashmap和SelectedRegions,它是一个数组列表。我正在迭代我的区域地图,并在其旁边显示带有文本的复选框作为我的区域地图中的值。现在,在迭代时,如果数组列表中有区域映射的值,我需要选中复选框。别检查。我尝试过如下所示的那个。但它不起作用。
<s:iterator value="regions">
<li>
<div class="listClass">
<s:if test="#regions.value==selectedRegions.value">
<input type="checkbox" id='myTheater' checked="checked" name="theaterCheckBox" class="theaterCheckBox" />
<s:property value="value" />
</s:if>
<s:else>
<input type="checkbox" id='myTheater' name="theaterCheckBox" class="theaterCheckBox" />
<s:property value="value" />
</s:else>
</div>
<div class="checkboxDiv">
<input type="checkbox" id="allFeatured" class="featuredCheckBox" />
</div>
</li>
</s:iterator>
如何,我正在使用的if条件不起作用。能否请您 让我知道如何实现这个目标?
答案 0 :(得分:2)
有很多方法可以做到这一点。您还应该查看<s:checkbox/>
和<s:checkboxlist/>
代码;
另请注意,要关注DRY,您可以仅将<s:if>
放在checked="checked"
部分,因为其余部分都是相同的。
保持简单,使用您的代码,一种方法是使用OGNL的in
(包含)和OGNL的{}
(列表投影)如下:
<s:iterator value="regions">
<li>
<div class="listClass">
<input type = "checkbox"
id = "myTheater"
<s:if test="%{value in selectedRegions.{value}}">
checked = "checked"
</s:if>
name = "theaterCheckBox"
class = "theaterCheckBox" />
<s:property value="value" />
</div>
<div class="checkboxDiv">
<input type="checkbox" id="allFeatured" class="featuredCheckBox" />
</div>
</li>
</s:iterator>