FreeMarker的认识及实例(一)

来源:互联网 发布:数控车床编程语言 编辑:程序博客网 时间:2024/05/17 12:48

一.Freemarker简介

 1.Freemarker是一个“模板引擎”,,也可以说是一个基于模板技术的生成文本输出的一个通用工具. 2.FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 3.FreeMarker与容器无关,因为它并不知道HTTPServlet;FreeMarker同样可以应用于非Web应用程序环境。 4.FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库

二.Freemarker用法

  1. ①、文本,直接输出的部分

    ②、注释,即<#–…–>格式不会输出

    ③、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出

    ④、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出

    2.FLT标签

    开始标签:<#directivename parameters>结束标签:</#directivename>空标签: <#directivename parameters />

    3.FreeMarker的插值有如下两种类型

    1、通用插值:${expr}2、数字格式化插值:#{expr}或者#{expr;format}

    4.表达式
    表达式是FreeMarker的核心功能。表达式放置在插值语法(${…})之中 时,表面需要输出表达式的值,表达式语法也可以与FreeMarker标签结合, 用于控制输出

      1、直接指定值     a、字符串: ${"我的文件保存在d:\\盘"};     b、数值     c、布尔值     d、日期型(FreeMarker支持date、time、 datetime三种类型,这三种类型的值无法直接指定,通常需要借助字符串的date、time、datetime三个内建函数进行转换才可以  )     <#assigntest1 = "2015-01-22"?date("yyyy-MM-dd")/>;     <#assign test2="16:34:43"?time("HH:mm:ss") />;     <#assigntest2 = "2015-01-2217:23:45"?datetime("yyyy-MM-dd HH:mm:ss") />     ${test1?string.full}     e、集合        集合以方括号包括,各集合元素之间以英文逗号(,)分隔,看如下的示例:           <#list[11,12,13,14,15] as x>              ${s};           </#list>      f、Map集合         Map对象使用花括号包括,Map中的key-value对之间以英文冒号(:)隔开,多组key-value对之间以英文逗号(,)隔开:         <#assign score = {"语文":78,"数学":83,"Java":89} >          <#list score?key as x>             ${x}--->${score[x]};         </#list>         <spanstylespanstyle="font-family:sans-serif,arial,verdana,trebuchet ms;line-height:1.6em"> </span>     2、输出变量值         FreeMarker的表达式输出变量时,这些变量可以是顶层变量,也可以是Map对象中的变量,还可以是集合中的变量,并可以使用点(.)语法来访问Java对象的属性        a、顶层变量        Map root = newHashMap();        root.put("name","wenchao");        对应顶层变量,直接使用${variableName}来输出变量值,变量名只能是数字、字母、下划线、$、@和#的组合,并不能以数字开头         b、输出集合元素           如果需要输出集合元素,则可以根据集合元素的索引来输出元素。集合元素的索引以方括号指定。         假设有集合对象为:["星期一","星期二","星期三","星期四","星期五","星期六"],该集合对象名为week,如果需要输出星期三,则可以使用如下语法:${week[2]}(索引从零开始)         c、输出Map元素            这里的Map对象可以是直接HashMap的实例,甚至包括JavaBean实例,对应JavaBean实例,我们一样可以把其当成属性为key,属性为value的Map实例
1 0
原创粉丝点击