Java 如何在Struts迭代器标记中添加条件?

Java 如何在Struts迭代器标记中添加条件?,java,jsp,struts2,iterator,ognl,Java,Jsp,Struts2,Iterator,Ognl,当评级值小于或等于2时,我想突出显示一行。我无法使用获取结果。请告诉我如何在我的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"/>&

当评级值小于或等于
2
时,我想突出显示一行。我无法使用
获取结果。请告诉我如何在我的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>

您可以像这样使用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}">

假设
评级
是被迭代对象的属性。然后在迭代器标记中,您可以通过属性名访问它

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

有几种方法:

  • 物业名称:

    <s:iterator value="mySource">
        <s:if test="rating==2">
    
  • 迭代器状态索引:

    <s:iterator value="mySource" status="myStat">
        <s:if test="mySource[%{#myStat.index}].rating==2">
    
  • 您必须像这样使用test=“%{abc.rating==2}”,而不是test=“#abc.rating==2”

    
    
    否。在
    标记的
    测试
    属性中不需要
    %{}
    。这是Struts 1,问题是关于Struts 2的,除非您使用了一些非常奇怪的标记前缀。
    <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">
    
    <s:iterator value="mySource">
        <s:if test="top.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>