比较长值Struts2

时间:2010-03-18 15:39:43

标签: java jsp struts2 ognl

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

变量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:如果我尝试过toString和equals()。它只有在我对值进行硬编码时才有效。例如:

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

任何线索?

谢谢。

2 个答案:

答案 0 :(得分:3)

字符串比较应使用equals()而不是==

完成

动作:

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>

答案 1 :(得分:0)

尝试相反的方式呢?

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

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

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