当前位置 : 主页 > 网络编程 > 其它编程 >

静态化技术Freemarker

来源:互联网 收集:自由互联 发布时间:2023-07-02
什么是FreemarkerFreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Ser 什么是Freemarker FreeMarker是一个用Java语言编写
什么是FreemarkerFreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Ser

什么是Freemarker

FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。

目前企业中:主要用Freemarker做静态页面或是页面展示

使用Freemarker所用到的jar

把下载到的jar包(freemarker-2.3.9.jar)放到\WebRoot\WEB-INF\lib目录下。下载地址:http://freemarker.sourceforge.net/freemarkerdownload.html (注:官方网站.org的经常打不开)

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

freemarkerfreemarker2.3.9

Freemarker原理图

技术分享

模板 +  数据模型 = 输出

第一步:Freemarker环境搭建

创建FMDemo类

      //第一步:实例化Freemarker的配置类 Configuration cOnf= new Configuration(); //第二步:给配置类设置路径 String dir = "C:\\Users\\lx\\workspaces-new\\freemarker\\ftl\\"; conf.setDirectoryForTemplateLoading(new File(dir)); Template template = conf.getTemplate("freemarker.ftl"); //第三步:处理模板及数据之间 关系 将数据与模板合成一个html //第四步: 输出html Writer out = new FileWriter(new File(dir + "hello.html"));      // 定义数据      Map root = new HashMap();      root.put("world", "世界你好");      //执行生成      template.process(root, out);      //关流      out.flush();      out.close();

创建页面模板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 persons = new ArrayList();

persons.add("范冰冰");

persons.add("李冰冰");

persons.add("何灵");

root.put("persons", persons);

//页面

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

例子3 : 遍历Map

//定义数据

Map root = new HashMap();

Map mx = new HashMap();

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

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

root.put("mx",mx);

//页面

第一种写法:

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

第二种写法:

  ${mx[k]}

例子4 : 遍历List

//定义数据

Map root = new HashMap();

List maps = new ArrayList();

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);

//页面

第一种写法:

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

第二种写法:

${m[k]}

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

//定义数据

Map root = new HashMap();

List persons = new ArrayList();

persons.add("范冰冰");

persons.add("李冰冰");

persons.add("何灵");

root.put("persons", persons);

//页面

${p_index}

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

1:

${x}

2:

${x}

3:世界太好了

${x}

4:

   

      ${n}

   

${x}

例子7 : #if

1:==   !=

       ${n}

2:按索引

   ${n}

3: ||   

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:

${u} 

2:

   ${u}

这是8

例子12 :

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

静态化技术Freemarker

上一篇:js有什么验证数据的库吗
下一篇:没有了
网友评论