大家好我正在尝试使用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">
任何线索?
谢谢。
答案 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)}" >