Сравнить длинные значения Struts2 - PullRequest
0 голосов
/ 18 марта 2010

Привет всем, я пытаюсь сравнить два значения с использованием struts2 s: если тег, но он не работает. Если я жестко закодирую значения, они работают, но я хочу, чтобы они были динамическими.

Переменная 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 ]

3 голосов
/ 18 марта 2010

Сравнение строк должно выполняться с использованием 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>
0 голосов
/ 18 марта 2010

Как насчет того, чтобы попробовать противоположный путь?

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

Примечание: я никогда не использовал structs2 напрямую, но работал с граалями ... разве вы не должны вставлять тест в фигурные скобки?

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