如何在Jelly脚本中使用<j:if>标签正确比较两个字符串
Jelly脚本字符串比较正确实现方案
Jelly完全支持字符串比较操作,你之前的写法问题出在EL表达式的语法使用错误,以下是可直接运行的实现方案:
1. 最简不等判断写法
<j:if test="${currentTestName != trTest_Name_Pass}"> <j:set var="currentTestName" value="${trTest_Name_Pass}"/> </j:if>
2. equals方法判断写法
如果需要使用String类的equals方法实现比较,写法如下:
<j:if test="${!currentTestName.equals(trTest_Name_Pass)}"> <j:set var="currentTestName" value="${trTest_Name_Pass}"/> </j:if>
常见错误说明
你之前的写法踩了两个核心语法坑:
- 不要在
${}内部重复嵌套${},整个test属性的判断逻辑只需要用一对${}包裹,内部直接写变量名即可 - 不要把变量名放在单引号/双引号中,否则会被识别为固定字符串常量,而非引用对应的变量值,自然无法得到正确的比较结果
空值兼容写法
如果两个变量可能存在null的情况,建议先做空值判断避免抛出空指针异常:
<j:if test="${!(empty currentTestName ? empty trTest_Name_Pass : currentTestName.equals(trTest_Name_Pass))}"> <j:set var="currentTestName" value="${trTest_Name_Pass}"/> </j:if>
内容的提问来源于stack exchange,提问作者LumberJack
相关产品推荐
相关产品推荐

