1

我正在尝试测试:

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

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

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

显然,它不起作用。我该如何解决?

4

1 回答 1

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 标签设置属性。

于 2012-08-28T14:56:32.717 回答