сравнить 2 переменные в скрипте желе

если ${xmlval} сравнивается с числом (1, 200 и т. д.), он работает. Но по сравнению с ${eachMaxOSTime} это не работает. (условие всегда работает как истинное) .intValue() также не помогло. Какое решение для этого?

2 ответа

Следующая структура используется для определения переменной с помощью скрипта Jelly:

      <j:set var="stringVariable"  value="I have value!"/>
<j:set var="maxEachOSTime"   value="0"/>

Следовательно, тип maxEachOSTimeпеременная. Вы пытаетесь приравнять integerв левой части уравнения с stringиспользуя escape-символ &gt;.

Это то, что, наконец, помогло мне в моем конкретном случае использования.

xmlval - это переменная, которая имеет целочисленное значение при чтении из файла xml.

maxEachOSTime var была установлена ​​​​как строка по умолчанию через <j:set>

Преобразовал это в число с плавающей запятой и использовал его intValue()

Ранее intValue() не работал, так как String не имел атрибута intValue, поэтому условие if пропускалось.

Это можно импровизировать, работая непосредственно с целыми числами.

      <j:new className="java.lang.Float" var="tempFloat">
    <j:arg value="${maxEachOSTime}" type="float"/>
</j:new>
<j:set var="intThing" value="${tempFloat.intValue()}"/>
<j:if test="${xmlval &gt; intThing}">
    <j:set var="maxEachOSTime" value="${xmlval}"/>
    <j:set var="finalTotalDuration" value="${total_duration}"/>
</j:if>
Другие вопросы по тегам