序列的重点知识小结

(1)序列的默认值为[],看下面的例子:

<#if (winnersList![])?size gt 0>
    <table class="winner_table" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <th class="bdr_gray">中奖账号</th>
            <th>猜测差值</th>
        </tr>
    <#list winnersList as list>
        <tr>
            <td class="bdr_gray">${list.accountId!""}</td>
            <td>${list.deviation!""}</td>
        </tr>
    </#list>
    </table>
</#if>
说明:在上面例子中,winnersList默认为[],它的内建函数为size

(2)序列的连接:

可以将两个序列连接成一个新的序列,连接序列的运算符是'+',见下面的例子:
<#list ["一","二","三"] + ["四","五","六"] as x>
    ${x}
</#list>
输出结果如下:
一二三四五六

(3)序列的切分:

举个例子看序列的切分应用场景:有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度
<#if title.content?length lt 8>
           <a href>${title.content?default("")}</a>
      <#else>
           <a href title="${title.content}">${title.content[0..3]?default("")}</a>
</#if>
上面例子的作用是:如果这个字符串的长度小于8,那么就正常显示,反之则取4位。
序列的切分要注意下面两点:
从FreeMarker 2.3.3版本以后lastindex才能省略。
如果试图访问一个序列首变量之前的项或末变量之后的项将会引起错误,模板的执行也会中断。

(4)子序列的定义:

序列中的项是表达式,那么也可以这样做:[2 + 2, [1, 2, 3, 4], "what"],其中第一个子变量是数字4,第二个子变量是一个序列,第三个子变量是字符串"what"。

(5)数字序列的定义:

第一种定义序列的方式:
<#assign nums=[1,2,3,4,5,77,8,99]/>
使用list指令将序列输出,
<#list nums as num>
   ${num}
</#list>
第二种定义序列的方式
定义了一个连续的序列,
<#assign nums=12..99/>
这种方式定义的序列的内容是12到99
说明:
从上面的例子可以看出,序列也可以用start..end定义存储数字范围的序列,这里的start和end是处理数字值表达式,比如2..5和[2, 3, 4, 5]是相同的,但是使用前者会更有效率(内存占用少而且速度快)。可以看出前者也没有使用方括号,这样也可以用来定义递减的数字范围,比如5..2。(此 外,还可以省略end,只需5..即可,但这样序列默认包含5,6,7,8等递增量直到无穷大)。

(6)判断序列是否包含某个元素

如果要判断序列中是否包含某个指定的元素,可以使用序列的内建函数seq_contains。
注:seq_contains这个内建函数从FreeMarker 2.3.1 版本开始可用。而在2.3 版本中不存在。
<#--声明一个序列,包含若干个元素-->
<#assign x = ["red", 16, "blue", "cyan"]>
<#--使用seq_contains判断序列中的元素是否存在-->
"blue": ${x?seq_contains("blue")?string("yes", "no")}
"yellow": ${x?seq_contains("yellow")?string("yes", "no")}
16: ${x?seq_contains(16)?string("yes", "no")}
"16": ${x?seq_contains("16")?string("yes", "no")}
输出结果:
"blue": yes
"yellow": no
16: yes
"16": no
附:seq_前缀在这个内建函数中是需要的,用来和contains 区分开。contains函数用来在字符串中查找子串(因为变量可以同时当作字符串和序列)。

内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值