速度模板 - 显示和隐藏

Velocity Template - Show and Hide

我有以下速度模板。


    <tr>
    <td>Address 1*</td>
    <td>:<b> $currentAddressAddress1 </b> </td>
    </tr>
    #if ($currentAddressAddress2)
    <tr>
    <td>Address 2</td>
    <td>:<b> $!currentAddressAddress2 </b> </td>
    </tr>
    #end

仅当 currentAddressAddress2 中包含 value 时,才应显示第二行。否则它不应该显示。但是我得到以下输出

Address 1* : RJ street

Address 2 :

But I want ,

Address 1* : RJ street

速度中的空值非常棘手(这将提供一些关于如何检查空值的见解:https://cwiki.apache.org/confluence/display/velocity/CheckingForNull)。我假设 $currentAddressAddress2String?在这种情况下,如果它不为空,那么您的检查将 return true。有几个选项可用,但其中一个是:

#if($!currentAddressAddress2 != "")

这显然不是一个很好的解决方案,例如,它不适合空白字符串,只能是空字符串。另一种选择是您可以将 Apache StringUtils 添加到控制器的请求中,并使用 isNotEmpty 检查它是否具有“真实”值。