`
peterwanghao
  • 浏览: 124403 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Jetspeed2.0中个性化定制的实现

 
阅读更多
支持个性化定制是Portal的一个特点。用户可以很方便地根据个人喜好进行个性化定制,如创建页面、选择页面布局、为每一个页面选择具体的Portlet内容、改变显示风格等。
用户个性化必须在系统权限允许的范围内进行。
概念介绍:
在Jetspeed2.0中关于页面结构包含以下元素:
元素
描述
文件夹(Folder)
定义站点文件夹,存储多个页面
页面(Page)
多个片段的汇集。以psml格式定义
片段(Fragment)
动态生成的内容,通常就是一个Portlet或页面。
布局(Layout)
定义了多个页面片断被聚合后的显示模式
装饰(Decorator)
一个对动态内容进行装饰的静态或半静态标记
布局装饰
(Layout-Decorator)
对页面布局的装饰
Portlet装饰
(Portlet-Decorator)
针对Portlet进行的装饰
页面装饰
(Page-Decorator)
对页面进行装饰的标记。由页面布局和片断的装饰组成
实现:
在/WEB-INF/conf/jetspeed-production.properties文件里定义了系统系统默认的布局类型和装饰风格。当一个页面需要被显示时,页面装配器会获得当前适用的装饰风格,这个装饰可以使系统默认的,也可以是页面指定的。
在Jetspeed2.0中所有页面元素文件都存放在/WEB-INF/pages目录下。
个性化定制时可以先定义一个站点文件夹,此文件夹相当于一个资源文件夹包含多个页面内容。相关的页面信息定义在folder.metadata文件中,同时也能定义访问控制。
页面元素由psml标记语言定义。一个页面元素包含一个缺省的layout-decorator和一个缺省的portlet-decorator。缺省的layout-decorator是必填项,用来标记整个页面布局的装饰。缺省得portlet-decorator是可选项,用来定义页面里包含的portlet的装饰。
一个页面元素至少有一个布局片段。也可以包含多个布局,布局间是嵌套关系。Jetspeed2.0系统的布局是由portlet实现的,部署于/WEB-INF/apps/jetspeed-layouts下,由org.apache.jetspeed.portlets.layout.MultiColumnPortlet类实现。包括添加,删除,移动,更改装饰等操作。
页面装饰可分为两部分:布局装饰和Portlet装饰。定义在/jetspeed/decorations下,使用的是Velocity的配置模板,就是一系列的vm文件。在这里需要强调的就是所有全局的宏定义在/WEB-INF/jetspeed-macros.vm文件里。每一个Portlet片段都可以定义自己的装饰,如果未定义就使用缺省得Portlet装饰,如果没有缺省的Portlet装饰,就是用缺省的布局装饰。
可以将上述的各个元素画图来表示他们之间的关系:
Folder -------->Page------->Default Decorator
| (layout , portlet)
|-- -------->Fragment --------->Portlet
(layout) (decorator)
总结:
Jetspeed2.0实现了个性化定制功能,用户可以方便的定制页面布局和样式。系统提供的布局装饰和Portlet装饰可以为用户提供更大的便利来定义自己的页面风格。如果想设计自己的布局模式和装饰风格也是十分方便,定义一个Portlet应用,设计一个装饰风格放到decorations目录下即可。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics