Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7607099 建立时间:2006年5月29日 |

| |
[FreeMarker]Hashes的TDD定义 软件技术
lhwork 发表于 2006/12/15 15:39:45 |
animals: { mouse: {size: "small", price: 50.0 } elephant: {size: "large", price: 5000.0 } python: {size: "medium", price: 3000.0 } } |
|
[FreeMarker]Sequences的TDD定义 软件技术
lhwork 发表于 2006/12/15 15:39:11 |
animals: [ {name: "mouse", size: "small", price: 50.0 } {name: "elephant", size: "large", price: 5000.0 } {name: "python", size: "medium", price: 3000.0 } ]
|
|
[FreeMarker]对象类型的各种操作 软件技术
lhwork 发表于 2006/12/15 15:38:22 |
对Scalars的一些规定
Scalars可以是字符串、数字、时间日期和boolean型中的一种,每种类型又有一些具体的规定和限制。
字符串
字符串使用单引号或双引号限定,如果包含特殊字符需要转义,转义的方法与java类似。有一类特殊的字符串称为raw字符串,被认为是纯文本,其中的斜杠和花括号等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子:${r"${foo}"} ${r"C:\\foo\\bar"}
数字
精度数字使用“.”分隔,而且目前版本不支持科学计数法,例如“1E3”是错误的,不能省略小数点前面的0,例如“.5” |
|
[FreeMarker]FreeMaker+Spring MVC 软件技术
lhwork 发表于 2006/12/15 9:49:29 |
新团队使用FreeMaker+Spring MVC做表现层。以前研究Spring Webflow的时候,顺带看了一下Spring MVC。虽然是半年前的事了,不过还好,上手并不难。FreeMaker
到是第一次接触,大量的标签的确让我一开始很不习惯,还得写JavaScript。flt文件又不可能用Dreamware打开来看,即使打开来看,大量
的FreeMaker标签也已经打乱了HTML。。。呵呵,现在回想起以前用Tapestry来开发的日子,简直是在天堂。FreeMaker的确很简单,看看例子立马就可以入手。Spring MVC在FreeMaker搭配下,使用起来方便多了。整个开发流程基本上是:1)打开flt文件,面向action思维;2)在Spring的web配置文件中定义或寻找action与bean之间的联系,然后匹配action与bean中的ModelAndView方法。3)在bean的ModelAndView方法中从HttpServletRequest对象中提取传递参数 |
|
[FreeMarker]FreeMarker 4 整合Struts 软件技术
lhwork 发表于 2006/12/15 9:47:10 |
传统意义上JSP常常作为MVC的view来使用,JSP技术为Web表现层技术提供了灵活、丰富的功能支持。然而站在工程的角度而言,过于强大的JSP
也成为系统维护的头号大敌-- 程序员在JSP
中将业务逻辑、数据逻辑、表现逻辑代码相混杂,代码重用性、系统可维护性极低,难以避免的造成代码的混乱,可维护性的下降。相反地,模板技术相对传统JSP技术有以下两个主要优势:1. 在技术层面,将表现逻辑与业务逻辑相分离。
1. 为人员之间的分工提供了一个良好的分界点。页面美工只需专著关心模板的设计,而程序员则专注于业务逻辑的实现。二者重合点明显减少。我们将以一个简单的留言本作为例子,来看看FreeMarker将如何替代JSP 整合到实际的Struts应用中去。
|
|
[FreeMarker]FreeMarker 3 宏 软件技术
lhwork 发表于 2006/12/15 9:46:38 |
宏Macro
宏是在模板中使用macro指令定义l.1 基本用法宏是和某个变量关联的模板片断,以便在模板中通过用户定义指令使用该变量,下面是一个例子:<#macro greet> <font size="+2">Hello Joe!</font> </#macro>调用宏时,与使用FreeMarker的其他指令类似,只是使用@替代FTL标记中的#。
<@greet></@greet> <#--<@greet/>--> |
|
[FreeMarker]FreeMarker 2 指令说明 软件技术
lhwork 发表于 2006/12/15 9:46:01 |
FreeMarker 数据模型
在FreeMarker模板中使用的三种基本对象类型:Scalars、Hashes 和Sequences。在解释这些对象类型之前,我们先来看看数据模型。典型的数据模型是树型结构,可以有任意深的层次,比如说:
(root) | +- animals | | | +- mouse | | | | | +- size = "small" | | | | | +- price = 50 | | | +- elephant | | | | | +- size =
阅读全文(6219) | 回复(0) | 编辑 | 精华 | 删除 |
| | |
[FreeMarker]FreeMarker 1 概述 软件技术
lhwork 发表于 2006/12/15 9:45:29 |
模板引擎 Template Engine
在B/S程式设计中,常常有美工和程序员二个角色,他们具有不同专业技能:美工专注于表现——创建页面、风格、布局、效果等等可视元素;而程序员则忙于创建程式的商业流程,生成设计页面要显示的数据等等。很多时候,要显示的资料在设计的时候并不存在,它们一般是在运行时由程式产生的,比如执行“价格不高于800NT的USB Disk”查询的返回结果。这种技术需求产生了JSP等Scriptlet,JSP十分强大,但是也常常被滥用,并导致一些不良的后果
将逻辑和表现混合在一起。破坏了美工和程序员职责的正常分解。使JSP页面难以阅读和维护。模板引擎就是为了解决上面的问题而产生的。在设计HTML的时候,我们加入一些特定指令来指定要插入哪些数据,这些加了特殊指令的HTML或者其他文本,我们称为模板(Tem |
|
[FreeMarker]使用FreeMarker-IDE,辅助提示WebWork的Tag语法 软件技术
lhwork 发表于 2006/9/11 15:21:11 |
一个取巧的方法,临时用用提示WebWork的标签. FreeMarker-IDE是一个非常好的工具,虽然还有很多地方不尽人意,目前版本是0.9.14.目前版本似乎无法支持transforms,以后的版本也许会支持的.WebWork用transform的方式实现了自己的Tag,但是标签很多,参数也很多,没有提示真是不爽啊FreeMarker-IDE支持宏定义方式的语法提示,虽然没有象JavaDoc方式的参数的解释说明,但是也比什么都没有强啊于是,一个念头产生,造一个假的宏定义,就可以提示了. 1.假设已经有了这个宏定义的文件,例如文件macro.ftl:<#macro test1 param1 param2 > </#macro>在macro.ftl上点击右键,选择"Use as FreeMarker Library",然后选中要作用其上的项目,设置设置namespace为你期望的名字,例如test, |
|
|