一尘不染

如何使用Struts2标签和OGNL比较两个字符串?

jsp

我正在尝试比较两个值:一个来自会话,另一个来自迭代器

<s:iterator value="themes" status="currentRecord"> 
    <s:if test="%{usertheme}) == %{themeName}">
        <td align="center" bgcolor="red">
    </s:if>
    <s:else>
        <td align="center" bgcolor="green">
    </s:else>
</s:iterator>

但是我无法比较我的价值观,请您能告诉我我在哪里犯错误吗?


阅读 374

收藏
2020-06-08

共1个答案

一尘不染

%{} (如有必要)应放在所有语句周围,而不是放在中间。

对于字符串,你应该使用.equals.equalsIgnoreCase.contains.indexOf等…不是==

更改为此:

<s:iterator value="themes" status="currentRecord"> 
   <s:if test="%{#session.usertheme.equalsIgnoreCase(themeName)}">
      <td align="center" bgcolor="red">
   </s:if>
   <s:else>
      <td align="center" bgcolor="yellow">
   </s:else>
....

这也可以:

   <s:if test="#session.usertheme.equalsIgnoreCase(themeName)">
2020-06-08