ofbiz学习——对模板使用装饰器screen widget
来源:互联网 发布:蹭网器淘宝叫什么 编辑:程序博客网 时间:2024/06/11 19:30
OFBiz对视图模板使用装饰器screen widget。这里单词“装饰器”来它基于的自设计模式——装饰器模式,这里装饰器在要包装的对象周围包装它自己。这种设计模式本身很适合我们模板的需要,因为一个装饰器将作为一个带有“插槽”的模板,在其中我们能插入(包含,在screen widget术语中)内容。也就是说,装饰器用内容块包围来包装自己。
1.创建XHTML装饰器screen
插入一个新的screen widget名为xhtml-decorator的screen widget到文件 LearningScreens.xml中:
---------------------------------------------------
<screenname="xhtml-decorator">
<section>
<widgets>
<include-screenname="header"/>
<decorator-section-includename="body"/>
<include-screenname="footer"/>
</widgets>
</section>
</screen>
---------------------------------------------------
注意这跟CompoundedScreen很像,除了所有的内容被 <decorator-section-include>元素替换掉了。 <decorator-section-include>就像一个命名的内容插槽。该元素告诉装饰器在header和footer之间插入名为body的内容片断。
实际上内容片断可被命名意味着:在一个包含不同内容片断的装饰器中,我们能有多个插槽。简而言之,一个装饰器窗口可指定命名的内容插槽,相同命名的内容片断可插入包含进其中。现在,在下面的例子中试试一个单一插槽的装饰器吧。
2.使用XHTML装饰器screen
在文件LearningScreens.xml中,编辑screen widget CompoundedScreen来使用screen widget xhtml-decorator:
---------------------------------------------------
<screenname="CompoundedScreen">
<section>
<widgets>
<decorator-screenname="xhtml-decorator">
<decorator-sectionname="body">
<include-screenname="SimplestScreen"/>
<include-screenname="AnotherSimpleScreen"/>
</decorator-section>
</decorator-screen>
</widgets>
</section>
</screen>
---------------------------------------------------
<decorator-screen>元素指出:我们想要应用xhtml-decorator装饰器screen到包含在<decorator-screen>元素中的内容。
为了让 <decorator-screen>元素拥有任何效果,需要用 <decorator-section>元素指定命名的内容片断。尽管上面例子中仅展示一个,但可有多个命名的内容片断。命名的内容片断取代装饰器中命名的内容插槽。
上面例子中的命名内容片断body是一个两个简单screens的复合体。这两个简单screens将插入到装饰器的命名内容插槽body中。
3.查看结果
发送OFBiz http请求CompoundedScreen到web应用learninghttp://localhost:8080/learning/control/CompoundedScreen。查看页面源代码来确认和我们在叫做候选模板的部分中看到的相同的格式良好的XHTML文档。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!-- Begin Screen component://learning/widget/learning/LearningScreens.xml#CompoundedScreen --><!-- Begin Screen component://learning/widget/learning/LearningScreens.xml#xhtml-decorator --><!-- Begin Screen component://learning/widget/learning/LearningScreens.xml#header --><!-- Begin Template component://learning/webapp/learning/includes/header.ftl --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html> <head> <title>OFBiz XHTML Document</title> </head> <body><!-- End Template component://learning/webapp/learning/includes/header.ftl --><!-- End Screen component://learning/widget/learning/LearningScreens.xml#header --><!-- Begin Screen component://learning/widget/learning/LearningScreens.xml#SimplestScreen -->Simplest Screen possible in OFBiz!<!-- End Screen component://learning/widget/learning/LearningScreens.xml#SimplestScreen --><!-- Begin Screen component://learning/widget/learning/LearningScreens.xml#AnotherSimpleScreen -->Just Another Simple Screen.<!-- End Screen component://learning/widget/learning/LearningScreens.xml#AnotherSimpleScreen --><!-- Begin Screen component://learning/widget/learning/LearningScreens.xml#footer --><!-- Begin Template component://learning/webapp/learning/includes/footer.ftl --> </body></html><!-- End Template component://learning/webapp/learning/includes/footer.ftl --><!-- End Screen component://learning/widget/learning/LearningScreens.xml#footer --><!-- End Screen component://learning/widget/learning/LearningScreens.xml#xhtml-decorator --><!-- End Screen component://learning/widget/learning/LearningScreens.xml#CompoundedScreen -->
页面源码显示了我们第一个格式良好版本的CompoundedScreen中相同内容。我们使用了一个单一装饰器(xhtml-decorator)来取代两个<include-screen>元素,它们负责创建我们的格式良好的XHTML文档中的头部和底部。
- ofbiz学习——对模板使用装饰器screen widget
- ofbiz总结——学习widget-form.xsd文档
- ofbiz学习日记--Widget小窗口和Decorator装修器的使用(利昂原创)
- ofbiz学习——分类
- ofbiz总结——Screen Widgets定义中常用的一些标签
- ofbiz Condition,Action,Screen
- ofbiz学习——选择目录
- ofbiz学习——畅销产品展示
- Android学习笔记:Home Screen Widgets(1):关于Widget
- Android学习笔记:Home Screen Widgets(2):关于Widget
- ofbiz配置文件[widget.properties]解析
- Python编程学习——装饰器
- python学习——装饰器
- Python 学习笔记 ——装饰器
- Python学习笔记——装饰器
- Apache OFBiz Development The Beginners Tutorial 翻译之三 使用Derby——OFBiz原装数据库
- widget模板
- Devstack — screen 调试工具的使用
- 原生JS实现AJAX及其原理
- 宏,枚举,常量的区别
- 渗透日记2:通过cmd上传文件的方法-vbs脚本
- Android自定义View数字圆环(一)
- Java多线程系列--“基础篇”10之 线程优先级和守护线程
- ofbiz学习——对模板使用装饰器screen widget
- 项目中下载的图片本地系统相册无法显示
- Codeforces Round #436 (Div. 2)解题报告
- httpd
- 蓝牙核心技术概述(二):蓝牙使用场景
- Android ViewPager一次性加载全部页卡,并且滑动时不被销毁
- HDU1009
- Session共享问题
- JavaScript-数组