Freemarker入门

来源:互联网 发布:php专家编程 pdf 编辑:程序博客网 时间:2024/04/29 14:49

Freemarker介绍:

Freemarker 是一款模板引擎,是一种基于模版生成静态文件的通用工具,它是为java程序员提供的一个开发包,或者说是一个类库,它不是面向最终用户的,而是为程序员提供了一款可以嵌入他们开发产品的应用程序。

     Freemarker与容器无关,因为它并不知道HTTPServlet;FreeMarker同样可以应用于非Web应用程序环境,FreeMarker更适合作为Model2框架(如Struts)的视图组件,可以在模板中使用JSP标记库,FreeMarker是免费的。

Freemarker准备:

         freemarker.2.3.16.jar  下载地址:http://download.csdn.net/detail/ch656409110/4494067   

Free生成静态化页面的原理:

         Freemarker生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的取值表达式, 标签或者自定义标签等等,然后后台读取这个模板页面,解析其中的标签完成相对应的操作,然后采用键值对的方式传递参数替换模板中的的取值表达式,做完之后根据配置的路径生成一个新的html页面,以达到静态化访问的目的。

简单freemarker例子

1、 建java工程 TestFreeMarker(普通的java项目就行)

2、 添加jar包  freemarker.2.3.16.jar

3、 在项目目录下建立模板目录 template

4、 在template目录下建立模板a.ftl 内容如下图:

 

5、建立自己的java文件 com.sh.Test (java文件用来提供数据)  如下图所示:

6、 运行,得到结果,如下图:

 

常用的控制指令:

if指令:

        <#if 判断(如user==”小明”)>

<#elseiif判断>

        <#else>  

</#if>

switch指令:

        <#switch value>

<#case refValue>...<#break>

<#case refValue>...<#break>

<#default>...

</#switch>

list 指令:

              <#list  sequence  as item>

              </#list>

和foreach语法相似,

迭代集合对象时,还包含两个特殊的循环变量:

item_index:当前变量的索引值

item_has_next:是否存在下一个对象

include指令:

                  <#includefilename [options]>

                   filename:该参数指定被包含的模板文件

options:该参数可以省略,指定包含时的选项,包含encoding和parse两个选项,其中encoding指定包含页面时所用的解码集,而parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true.

如何遍历map:

<#list   map?keys as mykey>  

          key 值 为: ${mykey}  

          value 值获取:  

                    <#assign mapUser=map[mykey] >  //些入没有引号   

                     <#list mapUser as contents>  

                                         ${contents.id}     //其它值雷同  

                      </#list>   

</#list>  

 

 

0 0