【问题标题】:Apache Velocity: Checking the count of arrayApache Velocity:检查数组的计数
【发布时间】:2016-08-16 20:38:16
【问题描述】:

我正在使用 Cisco Prime 基础设施,需要创建 CLI 模板以大规模部署到某些交换机。 Prime 使用 Apache Velocity 为其 CLI 内容编写脚本。我遇到了一个问题,我正在运行一些循环通过交换机上的 VLAN 并按 VLAN 执行操作的代码。如果交换机有多个 VLAN,则代码可以正常工作,但如果只有一个,则代码会失败。示例:

Switch1 由 Vlan 1 组成,所以数组看起来像这样 [Vlan1]

Switch2由Vlan 1, Vlan 2, Vlan 3组成,数组看起来像[Vlan1, Vlan2, Vlan3]

代码:

#foreach($vlan in $VlanName)
interface $vlan
no ip helper-address
#end

$VlanName 在 Prime 数据库中定义并返回每个交换机上的 vlan 数组。以上将在 Switch2 上工作,但在 Switch1 上将失败。 Apache Velocity 有没有办法检查数组是否包含多个值?我想做一个 IF 语句,将代码更改为这样的:

#if ($VlanName.count = 1)
interface $VlanName
no ip helper-address
#else
#foreach($vlan in $VlanName)
interface $vlan
no ip helper-address
#end

这在 Velocity 中是否可行?

【问题讨论】:

    标签: apache velocity cisco-ios


    【解决方案1】:

    您始终可以通过在对象上调用size() 方法来获取大小。

    #set($size = $VlanName.size())
    #if($size == 1)
        Only one
    #end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-29
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      相关资源
      最近更新 更多