扩展freemarker,实现模板的继承
?
现扩展freemarker,新增加三个指令: @extends,@block,@override
?
一.目的?
父模板页面定义好布局,子模板可以重定义布局中的部分内容使模板可以实现类似"类"的继承关系,并不限继承层次?
二.继承概榄父模板: base.ftl
?
configuration.setSharedVariable("block", new BlockDirective());configuration.setSharedVariable("override", new OverrideDirective());configuration.setSharedVariable("extends", new ExtendsDirective());?
?
以上三个指令属于rapid-framework的扩展,后续新版本发布将包含该项扩展,敬请关注。具体指令源码请查看:?http://rapid-framework.googlecode.com/svn/trunk/rapid-framework/src/rapid_framework_common/cn/org/rapid_framework/freemarker/directive/?
?
1 楼 超级潜水员 2009-12-22 支持,以前在common template看到过这个功能。觉得不错,但现在common template好久没有更新了。 2 楼 badqiu 2009-12-23 灵感来源于python django.
django的模板中布局方面最好用的一个功能。
继承的关系易于理解。我还扩展了velocity,也可以实现继承,后面会介绍。 3 楼 colorless 2009-12-23 你用的freemarker的版本好像比较老了。 4 楼 walle1027 2009-12-30 这个挺方便,省了重写好多模版的麻烦,有没有试过用freemarker写个grid的宏? 5 楼 yuanhuiwu 2011-07-27 我翻了freemarker的源代码,找到一个比你更好的实现模版接口和继承,请看
http://yuanhuiwu.iteye.com/
见笑