下载此文档

freemarker快速入门.docx


文档分类:IT计算机 | 页数:约21页 举报非法文档有奖
1/21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/21 下载此文档
文档列表 文档介绍
freemarker 快速入门 1)模板+数据模型=输出 FreeMarker 基于设计者和程序员是具有不同专业技能的不同个体的观念他们是分工劳动的: 设计者专注于表示——创建 HTML 文件、图片、 Web 页面的其它可视化方面; 程序员创建系统,生成设计页面要显示的数据。经常会遇到的问题是:在 Web 页面(或其它类型的文档)中显示的信息在设计页面时是无效的,是基于动态数据的。在这里,你可以在 HTML (或其它要输出的文本)中加入一些特定指令, FreeMarker 会在输出页面给最终用户时,用适当的数据替代这些代码。先来解释一下 freemaker 的基本语法了, <# ... >中存放所有 freemaker 的内容,之外的内容全部原样输出。<@ ... /> 是函数调用两个定界符内的内容中,第一个符号表示指令或者函数名,其后的跟随参数。 freemaker 提供的控制包括如下: <#if condition><#elseif condition><#else> 条件判断<#list hash_or_seq as var> 遍历 hash 表或者 collection (freemaker 称作 sequence )的成员<#macro name param1 param2 ... ><#nested param> 宏,无返回参数<#function name param1 param2><#return val> 函数,有返回参数 var?member_function(...) 用函数对 var 进行转换,freemaker 称为 build-ins 。实际内部实现类似 member_function(var, ...) stringA[M .. N] 取子字符串,类似 substring(stringA, M, N) {key:value, key2:value2 ...} 直接定义一个 hash 表[item0, item1, item2 ...] 直接定义一个序列 hash0[key0] 存取 hash 表中 key 对应的元素 seq0[5] 存取序列指定下标的元素<***@function1 param0 param1 ... /> 调用函数 function1 <***@macro0 param0 param1 ;nest_param0 nest_param1 ...> nest_body </***@macro> 调用宏,并处理宏的嵌套<#assign var =value >定义变量并初始化<#local var =value> 在macro 或者 function 中定义局部变量并初始化<#global var =value >定义全局变量并初始化${var} 输出并替换为表达式的值<#visit xmlnode> 调用 macro 匹配 xmlnode 本身及其子节点<#recurse xmlnode> 调用 macro 匹配 xmlnode 的子节点下面是一个例子: <html> <head> <title>e!</title> </head> <body> <h1>e ${user}!</h1> <p>Our latest product: <ahref="${}">${}</a>! </body> </html> 这个例子是在简单的 HTML 中加入了一些由${…}包围的特定代码,这些特定代码是 FreeMarker 的指令, 而包含 FreeMarker 的指令的文件就称为模板( Template )。至于 user 、 和 来自于数据模型( data model )。数据模型由程序员编程来创建,向模板提供变化的信息,这些信息来自于数据库、文件,甚至于在程序中直接生成。模板设计者不关心数据从那儿来,只知道使用已经建立的数据模型。下面是一个可能的数据模型: (root) |+-user ="Big Joe" |+-latestProduct |+-url ="products/" |+-name ="green mouse" 数据模型类似于计算机的文件系统, latestProduct 可以看作是目录。 2 、数据模型(1 )基础在快速入门中介绍了在模板中使用的三种基本对象类型: scalars 、 hashes 和 sequences ,其实还可以有其它更多的能力: ? scalars :存储单值? hashes :充当其它对象的容器,每个都关联一个唯一的查询名字? sequences :充当其它对象的容器,按次序访问?方法:通过传

freemarker快速入门 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数21
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yzhluyin1
  • 文件大小53 KB
  • 时间2017-02-24