论坛首页 Java企业应用论坛

Portal展现机制研究

浏览 33756 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-09-09  
intolong 写道

如果实现portlet使用view class + template方式的话,如果用户设置样式如字体、颜色时,这些设置应该放置在view class里吧?能否举个例子代码看看?

如果单抽出一个skin层做这件事,是否做一个样式层封装了大部分通用的样式设置?如表格风格、字体风格等等,再把它们加载到template上?


我觉得,实现portlet都要使用view class + template的方式。
view class实现Portlet这个接口,template用来放html。没有template,view class必须直接输出html。

Portal用户能够任意定制改变 单个Portlet 的显示风格吗?这个我还不是很清楚。我觉得,skin是应用Layout上的。

或者portlet可以从包含自己的容器继承一些风格?但Portlet规范中不存在这种协议。Portlet规范希望portlet能够在各个Portal容器中通用。

intolong 写道

还有layout能做到用户自由设置么,而不是系统预制才行?


我觉得,Layout好像确实要系统预制,由Portal管理员统一提供。
否则,Portal系统需要为每个用户维护一套Layout。
Portal管理员可以加入新的layout定义。普通用户只能选择这些layout。
0 请登录后投票
   发表时间:2004-09-10  
关于Portlet的样式的设置其实是这样的,可以通过引入css来实现,在注册portlet模块到系统中时可配置该portlet模块的一些参数,如该portlet引用哪个css等等,或由系统提供一系列的图片形的skin,在此定制各skin所引用的图片等等,这些设置其实在View class中是有的,但是view class只是读取配置而已,它并不关心你是怎么用的,后台只是一个支持,前台才决定了真正的显示形式

举个例子是这样的:
        
       <table bgcolor="$portlet.Config.Bgcolor">
              <tr>
                 <td>
                 </td>
              </tr>
        </table>


上面是个简单的例子,同理可以引入其他相关的配置,进而可以定制portlet的skin,其实定制portlet的skin的概念我觉得和sitemesh的decorator概念很相似,只是控制如标题栏,内容大致部分的显示,至于portlet内的显示还是要由portlet本身去控制的
对于skin部分是肯定需要抽出单独的一层来做的,skin层对于Layout以及portlet都是需要的
其实一个完整的View层解析过程是比较复杂的,基本是下面的顺序
page-->layout(结合skin)-->portlet(结合control、skin)
control指的是对于portlet控制的操作层,如最大化、最小化portlet等等
目前我所做的View层解析框架是支持由用户自定义layout的,layout控制的只是页面的布局而已,就是控制了页面分为几行几列,如有复杂的情况则通过嵌套layout实现,用户自定义layout过程很简单,在view层模块管理部分注册一个新的layout模块,在模块的配置中配置此layout的column和row就可以了,觉得此块支持用户的自定义会比较方便
0 请登录后投票
   发表时间:2004-09-10  
znjq 写道

业务逻辑中包含view层信息? 那我要更改一个layout,是否也要更改Domain Model?

用户布局信息、View层模块注册信息应该基于角色的基础上来处理比较好。

不同的角色拥有不同的界面信息(layout, view, porlet),这也更方便的加入权限的控制。


业务逻辑中包含view层信息的概念指的是包含view层的注册信息,一个layout或portlet在系统中可用的前提是首先将其注册到系统中,这也就要求系统有一个View层注册模块的Model,要更改layout时是不会触及到Domain model层的,这个可参考jetspeed的local-portlets.xreg,同样的道理

用户布局信息、View层模块注册信息应该是结合角色来做的,但不能基于角色,因为两者必须做到是可分开的,这样才能使得View层解析框架可以重用,这个在我的ppt的Domain Model设计部分有体现出来
0 请登录后投票
   发表时间:2004-09-11  
buaawhl 写道

我觉得,实现portlet都要使用view class + template的方式。
view class实现Portlet这个接口,template用来放html。没有template,view class必须直接输出html。



我觉得view class + template,如果template用html时,应用skin很麻烦,skin必须写在view class里,不好让用户自主的选择skin,我想每个html元素实际可以抽出通用的css来,不如做一个通用的css设置,根据用户的portlet使用的渲染器(如table使用tablerender,button使用buttonrender,每个render可以配置一堆skin,如tablerender使用tableskin、fontskin等等)来选择使用哪些css,然后用户可以设置这些选择的css,我是用tiles+jsp做的。
0 请登录后投票
   发表时间:2004-09-11  
恩,很同意intolong的观点,其实skin本来就是这样的,通过css来控制

不过用户是可以自主的选择skin,并且允许用户自己写css
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics