http://www.web008.net

静态化技术Freemarker,python中enumerate函数使用

enumerate()说明

  • enumerate()是python的内置函数
  • enumerate在字典上是枚举、列举的意思
  • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
  • enumerate多用于在for循环中得到计数

2:按索引

<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n>

<#if n_index != 0>

   ${n}

</#if>

</#list>

enumerate()使用

  • 如果对一个列表,既要遍历索引又要遍历元素时:

    1 list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] 2 for index, item in enumerate(list): 3 print(index, item) 4 5 0 星期一 6 1 星期二 7 2 星期三 8 3 星期四 9 4 星期五 10 5 星期六 11 6 星期天

  • 也能指定起始序号enumerate(li, 1)

    1 li = ["手机", "电脑", '鼠标垫', '游艇'] 2 for k,v in enumerate(li, 1): 3 print(k,v) 4 5 1 手机 6 2 电脑 7 3 鼠标垫 8 4 游艇

 

创建页面模板ftl/freemarker.ftl

 

${world}

 

第二步:应用例子测试

 

例子1 : 对象输出

 

//定义数据

Map root = new HashMap();

Person p  = new Person();

root.put("person",p);

//页面

${person.id}=${person.name}

例子2 : 遍历List

//定义数据

Map root = new HashMap();

List<String> persons = new ArrayList<String>();

persons.add("范冰冰");

persons.add("李冰冰");

persons.add("何灵");

root.put("persons", persons);

//页面

<#list persons as p>

  ${p.id}/${p.name}

</#list>

例子3 : 遍历Map

//定义数据

Map root = new HashMap();

Map mx = new HashMap();

mx.put("fbb","范冰冰");

mx.put("lbb","李冰冰");

root.put("mx",mx);

//页面

第一种写法:

${mx.fbb}/${mx.lbb}

第二种写法:

<#list mx?keys as k>

  ${mx[k]}

</#list>

例子4 : 遍历List<Map>

 

//定义数据

Map root = new HashMap();

List<Map> maps = new ArrayList<Map>();

Map pms1 = new HashMap();

pms1.put("id1", "范冰冰");

pms1.put("id2", "李冰冰");

Map pms2 = new HashMap();

pms2.put("id1", "曾志伟");

pms2.put("id2", "何炅");

maps.add(pms1);

maps.add(pms2);

root.put("maps", maps);

 

//页面

 

第一种写法:

<#list maps as m>

${m.id1}/${m.id2}

</#list>

第二种写法:

<#list maps as m>

<#list m?keys as k>

${m[k]}

</#list>

</#list>

例子5 : 获取当前选代的索引

//定义数据

Map root = new HashMap();

List<String> persons = new ArrayList<String>();

persons.add("范冰冰");

persons.add("李冰冰");

persons.add("何灵");

root.put("persons", persons);

 

//页面

<#list persons as p>

${p_index}

</#list>

例子6 : 在模版中进行赋值

1:<#assign x=0 />

${x}

2:<#assign x="${world}" />

${x}

3:<#assign x>世界太好了</#assign>

${x}

4:<#assign x>

   <#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n>

      ${n}

   </#list>

</#assign>

${x}

例子7 : #if

3: ||   &&

<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n>

<#if (n_index == 1) || (n_index == 3)>

   ${n}

</#if>

</#list>

例子8 : #else

<#list ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as n>

<#if (n_index == 1) || (n_index == 3)>

       ${n} --红色

<#else>

${n} --绿色

</#if>

</#list>

例子9 : 时间格式

//定义数据

Map root = new HashMap();

root.put("cur_time",new Date());

 

//页面

1:date

${cur_time?date}

2:datetime

${cur_time?datetime}

3:time

${cur_time?time}

例子10 : null处理

//定义数据

Map root = new HashMap();

root.put("val",null);

 

//页面

${val!"我是null!"}

例子11 : 宏定义

1:

<#macro table u>

${u} 

</#macro>

<@table u=8 />

2:

<#macro table u>

   ${u}

<#nested/>

</#macro>

<@table u=8 >这是8</@table>

例子12 :

将另一个页面引入本页面时可用以下命令完成

<#include "/include/head.html">

 

使用Freemarker所用到的jar

 

把下载到的jar包(freemarker-2.3.9.jar)放到WebRootWEB-INFlib目录下。下载地址: (注:官方网站.org的经常打不开)

 

如果使用的是Maven结构,可在pom.xml中引入以下坐标

<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.9</version>
</dependency>

郑重声明:本文版权归美高梅163888所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。