速度模板语言:在一个#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