有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我想在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>

共 (4) 个答案

  1. # 1 楼答案

    你可以这样使用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}">
    
  2. # 2 楼答案

    您必须像这样使用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>
    
  3. # 3 楼答案

    有几种方法:

    1. 物业名称:

      <s:iterator value="mySource">
          <s:if test="rating==2">
      
    2. var别名引用:

      <s:iterator value="mySource" var="myVar">
          <s:if test="#myVar.rating==2">
      
    3. 迭代器状态索引:

      <s:iterator value="mySource" status="myStat">
          <s:if test="mySource[%{#myStat.index}].rating==2">
      
    4. top参考:

      <s:iterator value="mySource">
          <s:if test="top.rating==2">
      
  4. # 4 楼答案

    假设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'/>">