0

大家好,我正在尝试使用 struts2 s:if 标签比较两个值,但它不起作用。如果我硬编码它的值,但我希望它是动态的。

变量 stringValue 是 String 类型。变量 currentLongValue 是 Long 类型。

<s:set var="stringValue" value="order"/>
<s:iterator value="listTest">
 <s:set var="currentLongValue" value="value"/>

 <s:if test="#currentLongValue.toString() == #stringValue" >
   //Do something      
 </s:if>
 <s:else>
 //Do something else
 </s:else>

</s:iterator>

对于 s:if 我尝试过 toString 和 equals()。它仅在我对值进行硬编码时才有效。例子:

<s:if test="#currentLongValue == 1234">

有什么线索吗?

谢谢你。

4

2 回答 2

3

字符串比较应该使用equals()not==

行动:

public Long getSomeLongValue () {
    Long l = 55l;
    return l;
}

public String getSomeString () {
    return "55";
}

JSP:

<s:if test="someLongValue.toString().equals(someString)">
    CAME IN IF
</s:if>
<s:else>
    CAME IN SIDE ELSE
</s:else>
于 2010-03-18T16:05:51.053 回答
0

尝试相反的方法呢?

<s:if test="#currentLongValue == Long.parseLong(#stringValue)" >

附注:我从未直接使用过 structs2,但我使用过 grails .. 你不应该将测试嵌入到大括号中吗?

<s:if test="%{#currentLongValue == Long.parseLong(#stringValue)}" >
于 2010-03-18T15:48:19.277 回答