我正在尝试测试:
<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>
显然,它不起作用。我怎么解决?
答案 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标记。