struts 2 中的测试迭代器值

test iterator value in struts 2

我想select条件下拉选项。

 <s:set var="defaultState" value="customerBean.state"/>
                                        <select onchange="reflect(this);"  name="customerBean.state" class="form-control"  id="state">
                                            <option>Select</option>
                                            <s:iterator value="stateList" var="statevalue">

                                                <s:if test="%{#defaultState.equalsIgnoreCase(stateValue)}">  
                                                    <option id="stateVal" selected="selected"><s:property value="statevalue"/></option>

                                                </s:if>  
                                                <s:else>  
                                                    <option id="stateVal"><s:property value="statevalue"/></option>
                                                </s:else> 
                                            </s:iterator>
                                        </select>

这行不通。但是如果我把

<s:if test="%{#defaultState.equalsIgnoreCase('Alabama')}">

这有效。

请帮忙。

你确定不是简单的错别字?在您的代码中,您使用的是 stateValuestatevalue

除此之外,stateList 是一个简单列表还是 bean 列表?对于第二个选项,你必须使用类似 stateValue.value.

的东西

另一种选择:因为它是一个 OGNL 表达式,您也可以尝试 #statevalue。但我不确定何时使用 # 以及何时不使用

另一个选项:使用 struts 标签 s:select 并使用 value 属性预选选项。