2

<j:set var="maxEachOSTime" value="0" />
<j:if test="${xmlval &gt; maxEachOSTime}">
    ${xmlval} &gt; ${ maxEachOSTime}
    <j:set var="maxEachOSTime" value="${xmlval}"/>
    <j:set var="finalTotalDuration" value="${total_duration}"/>
</j:if>

如果将 ${xmlval} 与一个数字(1、200 等)进行比较,它会起作用。但是与 ${eachMaxOSTime} 相比,它不起作用。(条件始终为真) .intValue() 也没有帮助。解决方案是什么?

4

2 回答 2

2

以下结构用于string使用 Jelly 脚本定义变量:

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

因此,maxEachOSTime变量的类型是string。您试图将integer等式左侧的 a 与string使用转义字符的 a 等同起来&gt;

于 2021-12-18T04:53:05.550 回答
1

这就是最终在我的特定用例中帮助我的原因。

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>
于 2021-12-19T05:50:22.273 回答