如何使用 Velocity 模板语言检查数组中是不是存在值

Posted

技术标签:

【中文标题】如何使用 Velocity 模板语言检查数组中是不是存在值【英文标题】:How to check if value exists in an array using Velocity Template Language如何使用 Velocity 模板语言检查数组中是否存在值 【发布时间】:2019-12-27 11:26:36 【问题描述】:

我不确定如何使用 Velocity 模板语言实现以下目标。

基本上,我想检查给定列表/数组中是否存在给定值。在 C# 中,它相当于 .Any().Contains() 方法。

#set($myValues = ["apple", "banana", "strawberry"])
#foreach($i in $items)
    $myValues.any($i) <= better way to achieve this??
    or something like this
    $myValues.contains($i)
#end

当然,我可以使用多个if...else... 条件并循环遍历列表来检查某个值是否存在,但是代码很快就会变得混乱(如果查找列表很大)。有没有更好的方法来做到这一点?

【问题讨论】:

$myValues.contains($i) 应该可以正常工作,因为速度可以解释此类方法调用,只要它们是 java 【参考方案1】:
$myValues.contains($i)

$list.contains($myValues, $i)

(这个被弃用了,因为前者是在 Velocity 1.6 中引入的)

【讨论】:

谢谢安德鲁。会区分大小写吗? @woodykiddy 是的,"A""a" 在 Java 中是不一样的,如果你使用 String 的等号(List#contains 将使用它)

以上是关于如何使用 Velocity 模板语言检查数组中是不是存在值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS appSync 的 Apache Velocity 请求映射模板中操作字符串和数组

Velocity 模板语言中词法正确的语句是啥

在 Apache Velocity 模板语言中获取文件目录

检查字符串是不是包含 Velocity 中的特定子字符串

Velocity语言的介绍

Spring中使用Velocity模板