如何使用struts 2标签检查jsp中的list.contains

时间:2014-06-26 10:48:05

标签: java jsp struts2 ognl

我需要显示一系列复选框,如果条件成功,我需要检查它们。以下是我的代码。我有一个区域,它是一个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条件不起作用。能否请您 让我知道如何实现这个目标?

1 个答案:

答案 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>