Struts2 if 条件使用字符串列表

Struts2 if condition using string list

我有一个名为 matrixList 的数组列表,我正在对其进行迭代。如果 getStatus() 方法的 return 值等于值 "GREEN",我想显示不同的值。出于某种原因,我收到错误 "target is null for method equals"

<s:iterator status="stat" value="matrixList">
  <tr>
    <s:if test="%{#status.equals('GREEN')}">
      THIS IS green
    </s:if>

    <td class="R0C1"><s:property value="status"/></td>
    <td class="R0C1"><s:property value="releaseTarget"/></td>
  </tr>
</s:iterator>

知道我错过了什么吗?

if 语句中使用的 属性 名称应为 stat 而不是 status

<s:if test="%{#stat.equals('GREEN')}">

这是因为status = "stat"语句中迭代作用域的变量名定义为stat

如果 status 在值堆栈上(与堆栈上下文中的命名值相反),则省略 #

<s:if test="%{status.equals('GREEN')}">

如果 <s:property value="status"/> 有效,为什么要在 <s:if> 标签中以不同方式引用它?