比较 Long 值 Struts2

发布于 2024-08-25 11:04:46 字数 646 浏览 9 评论 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">

有什么线索吗?

谢谢。

Hi everyone I'm trying to compare two values using struts2 s:if tag but its not working. If I hardcode the values it works but I want it to be dynamic.

The variable stringValue is of type String.
The variable currentLongValue is of type 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>

For the s:if I have tried toString and also the equals(). It only works if I hardcode the values. Example:

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

Any clues?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

零時差 2024-09-01 11:04:46

字符串比较应该使用 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>

String comparisons should be done using equals() not ==

Action:

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>
海拔太高太耀眼 2024-09-01 11:04:46

尝试相反的方法怎么样?

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

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

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

What about trying the opposite way?

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

A side note: I've never used structs2 directly but I worked with grails.. shouldn't you embed the test inside braces?

<s:if test="%{#currentLongValue == Long.parseLong(#stringValue)}" >
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文