【问题标题】:Velocity Template Language: Connect two conditions in one #elseif() statementVelocity 模板语言:在一个 #elseif() 语句中连接两个条件
【发布时间】:2019-03-07 09:46:03
【问题描述】:

在我的示例中,参数是:

$p2.length

其值为“0

和布尔值

$suspectYesNo 设置为“false”。

我希望,在我的代码中,由于我设置的参数,第二个#elseif 将运行,但是它显示“代码 4 运行”

我想,我的错误是使用“&&”连接两个条件,但我不知道如何正确定义具有两个条件的线。

这让我想到了一个问题:如何正确地将两个条件 ($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

【问题讨论】:

  • 你确定你必须像函数一样调用 length() 吗?你不应该检查$p2.length === 0 而不是$p2.length() == 0 吗?
  • @Dinosan0908:感谢您的提示。我已将这些部分更正为: $p2.length == 0 (使用“===”它不起作用 - 但是它并没有真正改变行为)
  • @user7294900:谢谢!根据您的参考,我使它工作。我发布我的解决方案!
  • @user7294900:完成 :) 非常感谢!

标签: if-statement velocity polarion velocity-template-language


【解决方案1】:

感谢 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 2021-03-07
    • 2016-06-21
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多