在struts 2中测试迭代器值

时间:2018-08-25 09:41:37

标签: if-statement struts2

我想在下拉菜单中选择条件。

 <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')}">

这有效。

请帮助。

1 个答案:

答案 0 :(得分:0)

您是否检查过它不是简单的错字?在您的代码中,您正在使用stateValuestatevalue

stateList旁边是一个简单列表还是它是bean列表?对于第二个选项,您必须使用类似stateValue.value的东西。

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

另一个选项:使用struts标记s:select,并使用value属性来预先选择该选项。