浏览 3614 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-17
于是结合struts2+Freemarker做过的项目进行思考,原来用struts2+Freemarker也可以轻松做到Django模板的功能,几天试用下来,那不是一般的爽,sitemesh暂时放一边去吧。 以一个例子来说明 1. 首先定义模板,假设路径为: /webapps/exam/base.ftl, 定义基本布局 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title><@title/></title> </head> <body> <h1>Welcom</h1> <#if content?exists> <@content/> </#if> <#if images?exists> <@images/> </#if> <#if comment?exists> <@comment/> </#if> <p> <hr/> 2003-2008 xxx.com. All rights reserved. </p> </body> </html> 分为头、正文内容区域、图片区域、评论区域、尾,这是一个很简单的布局 2. 写一个简单的页面来测试,路径:/webapps/exam/simple.ftl,内容如下 <#include "/exam/base.ftl"/> <#macro title> 测试 </#macro> <#macro content> 蒂皮出版的《我的野生动物朋友》一书中,配有她的父母现场拍摄的130多幅照片,展现小女孩与各种凶残的非洲野生动物毫无顾忌玩耍的情景。这本书的广告称,这是又一个“狼孩”故事。 </#macro> <#macro comment> <hr> <p>用户评论</p> <p> Tom Say: very good </p> </#macro> 这个简单页面就完成了,在simple.ftl中我们不关心布局,爱怎么摆就怎么摆,浏览器中可以看到效果了。 3. 通过继承增强simple.ftl 现在用户的需求来了,要在书籍介绍下显示插图,可以直接修改上面的simple.ftl来实现,另外我们来看看继承simple.ftl来实现这个需求,添加一个文件:/webapps/exam/image-book.ftl,内容如下: <#include "/exam/simple.ftl"/> <#macro images> <p> <img src='http://img2.cache.netease.com/cnews/2008/11/17/20081117095448372ff.jpg'/> </p> </#macro> 现在来看看,很好,已经在原来的页面上加上了图片。 这个例子非常简单,只是为了说明如何实现模板继承,应用场景应该很多。项目中正在用,感觉很方便。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-18
这个不叫继承吧?? 顶多叫聚合, freemarker的弱点也很明显,不直观,非到运行时才可看到效果。
|
|
返回顶楼 | |
发表时间:2009-06-25
FreeMarker, 很好很强大
|
|
返回顶楼 | |
发表时间:2009-06-26
没怎么用过FREEMARKER,有个问题,如果你的2个相同的元素,比如出现2个IMAGE,父页面怎么区分啊?直接连续输出2个?我要在不同位置输出这2个图片怎么处理呢?
|
|
返回顶楼 | |