Struts2:测试<s:property>与action </s:property>中的变量的相等性

时间:2012-08-28 14:36:30

标签: struts2

我正在尝试测试:

<s:if test="%{selectedLanguage == <s:property/>}">

其中selectedLanguage来自动作,而s:属性是当前对象。 在像这样的迭代器中:

<s:iterator value="languages">
    <s:if test="%{selectedLanguage == <s:property/>}">
        <option id="<s:property/>" selected><s:property/></option>
    </s:if>
    <s:else>
        <option id="<s:property/>"><s:property/></option>
    </s:else>
</s:iterator>

显然,它不起作用。我怎么解决?

1 个答案:

答案 0 :(得分:3)

无需修复,只需使用var属性为迭代对象命名:

<s:iterator value="languages" var="language">
    <s:if test="%{selectedLanguage == #language}">
        <option id="<s:property/>" selected><s:property/></option>
    </s:if>
    <s:else>
        <option id="<s:property/>"><s:property/></option>
    </s:else>
</s:iterator>

您也可以使用#top来获得堆栈的顶部,但我认为命名它更具沟通性。

我建议根据selected设置#language属性,或者只使用select标记。