我想在
rating
的值小于或等于2
时突出显示一行。我无法使用 <s:if>
标签来获取结果。请告诉我如何在 JSP 页面中添加条件?
<table>
<s:iterator value="fb" status="abc">
<s:if test="#abc.rating==2">
<td style="background: #CCCCCC">
</s:if>
<tr>
<td><s:property value="cid"/></td>
<td><s:property value="cname"/></td>
<td><s:property value="rating"/></td>
<td><s:property value="likes"/></td>
<td><s:property value="dislikes"/></td>
<td><s:property value="suggestion"/></td>
</tr>
</s:iterator>
</table>
假设
rating
是被迭代对象的属性。然后在迭代器标签内,您可以通过属性名称访问它。
<s:if test="rating==2">
<s:set var="myStyle" value="'background: #CCCCCC'"/>
</s:if>
<s:else>
<s:set var="myStyle" value="'background: #FFFFFF'"/>
</s:else>
然后使用 HTML
style
属性
<td style="<s:property value='#myStyle'/>">
有几种方法:
楼盘名称:
<s:iterator value="mySource">
<s:if test="rating==2">
var
别名参考:
<s:iterator value="mySource" var="myVar">
<s:if test="#myVar.rating==2">
迭代器状态索引:
<s:iterator value="mySource" status="myStat">
<s:if test="mySource[%{#myStat.index}].rating==2">
top
参考:
<s:iterator value="mySource">
<s:if test="top.rating==2">
你可以这样使用EL(表达语言)
<td style="background: ${abc.rating<=2 ? '#CCCCCC' : ''}">
或者你可以定义bean变量
<logic:lessEqual value="2" name="abc" property="rating">
<bean:define id="colorTd" value="#CCCCCC"/>
</logic:lessEqual>
<td style="background: ${colorTd}">
你必须像这样使用 test="%{abc. rating==2}" 而不是 test="#abc. rating==2"
<table>
<s:iterator value="fb" status="abc">
<s:if test="%{abc.rating==2}">
<td style="background: #CCCCCC">
</s:if>
<tr>
<td><s:property value="cid"/></td>
<td><s:property value="cname"/></td>
<td><s:property value="rating"/></td>
<td><s:property value="likes"/></td>
<td><s:property value="dislikes"/></td>
<td><s:property value="suggestion"/></td>
</tr>
</s:iterator>
</table>