浏览 4562 次
锁定老帖子 主题:扩展freemarker,实现模板的继承
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-22
最后修改:2009-12-28
现扩展freemarker,新增加三个指令: @extends,@block,@override
一.目的
二.继承概榄父模板: base.ftl
<html> <head> <@block name="head">base_head_content</@block> </head> <body> <@block name="body">base_body_content</@block> </body> </html>
子模板child.ftl
<@override name="body"> <div class='content'> Powered By rapid-framework </div> </@override> <@extends name="base.flt"/>
子模板child.ftl输出
<html> <head> base_head_content </head> <body> <div class='content'> Powered By rapid-framework </div> </body> </html> 可以看到,body部分被重定义了,而head部分则还是显示父模板的内容。
三.指令介绍
四.使用说明
要使用如上三个自定义指令,必须在freeemarker的Configuration中注册。 使用如下代码:
configuration.setSharedVariable("block", new BlockDirective()); configuration.setSharedVariable("override", new OverrideDirective()); configuration.setSharedVariable("extends", new ExtendsDirective());
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-12-22
支持,以前在common template看到过这个功能。
觉得不错,但现在common template好久没有更新了。 |
|
返回顶楼 | |
发表时间:2009-12-23
灵感来源于python django.
django的模板中布局方面最好用的一个功能。 继承的关系易于理解。我还扩展了velocity,也可以实现继承,后面会介绍。 |
|
返回顶楼 | |
发表时间:2009-12-23
你用的freemarker的版本好像比较老了。
|
|
返回顶楼 | |
发表时间:2009-12-30
最后修改:2009-12-30
这个挺方便,省了重写好多模版的麻烦,有没有试过用freemarker写个grid的宏?
|
|
返回顶楼 | |