сравнить 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-символ
>
.
Это то, что, наконец, помогло мне в моем конкретном случае использования.
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 > intThing}">
<j:set var="maxEachOSTime" value="${xmlval}"/>
<j:set var="finalTotalDuration" value="${total_duration}"/>
</j:if>