速度模板语言:在一个#elseif() 语句中连接两个条件
Velocity Template Language: Connect two conditions in one #elseif() statement
在我的示例中,参数是:
$p2.length
其值为“0”
和布尔值
$suspectYesNo 设置为“false”。
我预计,在我的代码中,second #elseif 将 运行 由于我设置的参数,但是它显示 "Code 4 runs"
我想,我的错误是使用“&&”连接两个条件,但我不知道如何正确定义具有两个条件的行。
这让我想到了一个问题:如何将两个条件 ($p2.length()==0) 和 ($suspectYesNo.value.contains("true")) 正确地结合在一起#elseif().
还是我定义的布尔值错误?
#if($p2.length()>0)
Code 1 runs
#elseif($p2.length()==0 && $suspectYesNo.value.contains("true"))
Code 2 runs
#elseif($p2.length()==0 && $suspectYesNo.value.contains("false"))
Code 3 runs
#else
Code 4 runs
#end
感谢 user7294900 为我提供了解决问题的参考。
它没有将布尔值读取为字符串,可以通过添加 "toString()" 方法来修复。
这里使用这段代码可以正常工作:
#if($p2.length > 0)
Code 1 runs
#elseif($p2.length == 0 && $suspectYesNo.value.toString().contains("true"))
Code 2 runs
#elseif($p2.length == 0 && $suspectYesNo.value.toString().contains("false"))
Code 3 runs
#else
Code 4 runs
#end
在我的示例中,参数是:
$p2.length
其值为“0”
和布尔值
$suspectYesNo 设置为“false”。
我预计,在我的代码中,second #elseif 将 运行 由于我设置的参数,但是它显示 "Code 4 runs"
我想,我的错误是使用“&&”连接两个条件,但我不知道如何正确定义具有两个条件的行。
这让我想到了一个问题:如何将两个条件 ($p2.length()==0) 和 ($suspectYesNo.value.contains("true")) 正确地结合在一起#elseif().
还是我定义的布尔值错误?
#if($p2.length()>0)
Code 1 runs
#elseif($p2.length()==0 && $suspectYesNo.value.contains("true"))
Code 2 runs
#elseif($p2.length()==0 && $suspectYesNo.value.contains("false"))
Code 3 runs
#else
Code 4 runs
#end
感谢 user7294900 为我提供了解决问题的参考。
它没有将布尔值读取为字符串,可以通过添加 "toString()" 方法来修复。
这里使用这段代码可以正常工作:
#if($p2.length > 0)
Code 1 runs
#elseif($p2.length == 0 && $suspectYesNo.value.toString().contains("true"))
Code 2 runs
#elseif($p2.length == 0 && $suspectYesNo.value.toString().contains("false"))
Code 3 runs
#else
Code 4 runs
#end