Portlet
形态
Portlet
的形态直白的说,就是
portlet
功能的表现形式。通常,
portlet
根据他们自己功能的不同,执行不同的任务以及生成不同的内容。
Portlet
形态直接预示着他们担任什么样的功能并且将会显示什么样的内容。当
portlet
被调用的时候,
portlet
容器会为其提供的一个的当前
portal
形态。
Portlet
可以很方便的在处理一个
action
请求的时候改变它的形态。
Portal
规范定义了
3
个
portlet
形态。他们分别是
VIEW
,
EDIT
以及
HELP
。
PortletMode
类定义了这些形态的常量。
Portal
形态还用于对用户的权限功能控制,比方说一个未认证用户只能察看
portlet
的
VIEW
以及
HELP
形态,而认证用户则能访问
portlet
的
EDIT
形态。
8.1 Portlet
的
VIEW
形态
Portlet
的
VIEW
形态的主要功能是通过生成标记语言来显示
portlet
的当前状态。比方说,一个
portlet
的
VIEW
形态可能包含一到两个页面,用户可以浏览或者做某些操作。它也可能仅仅是一张静态页面而不做任何事情。
开发者可以简单的通过重载
GenericPortlet
的
doView()
方法来获得这项功能
Portlet
必须支持
VIEW
形态
8.2 EDIT
形态
在
EDIT
形态下面,
portlet
应该提供相关的内容以及逻辑给用户,以便能够让用户可以自定义
portlet
行为。一个
EDIT
形态的
portlet
应该有
1
到多个窗口,这样用户就能从这些窗口进入他们自己自定义的数据了。
通常,
EDIT
形态的
portlet
会设置或者更新
Portlet
参数。参考
portlet
参数一节获得更多的细节。
开发者可以简单的通过重载
GenericPortlet
的
doEdit()
方法来获得这项功能
Portlet
不必支持
EDIT
形态
8.3 HELP
形态
在
help
形态下面,
portlet
应该提供
portlet
本身的相关帮助信息。一个
portlet
的帮助信息可以是介绍
portlet
的完整帮助或者是内容相关的帮助文本。
开发者可以简单的通过重载
GenericPortlet
的
doHelp()
方法来获得这项功能
Portlet
不必支持
HELP
形态
8.4 portlet
自定义形态
Portlal
的提供者可以自定义
portlet
形态用来提供自己指定的功能
要使用自定义
Portlet
形态,首先需要在部署描述器中添加
custom-portlet-mode
元素
,其次需要在运行期找到该形态的
portal
实现。如果在运行期间找不到该自定义形态的
portal
实现,这个
portlet
就不应该被调用
打个比方,
portlet
应用需要支持
clipsboard
以及
config
形态的
portlet
,那么部署描述器里面可能这么写:
<portlet-app>
...
<custom-portlet-mode>
<description>Creates content for Cut and Paste</description>
<name>clipboard</name>
</custom-portlet-mode>
<custom-portlet-mode>
<description>Provides administration functions</description>
<name>config</name>
</custom-portlet-mode>
...
</portlet-app>
在《扩展
Portlet
形态》附录中列出了建议的
portlet
形态的命名参考以及他们的使用参考。如果
portlet
在部署描述器中定义了一个自定义的形态,并且
portal
容器实现了这种形态的话,那么
Portal
容器可以立即自动地映射这种支持形态。
8.5 GenericPorlet
渲染方法的处理
GenericPorlet
通过
render
方法来分发用户的请求给
doView , doEdit , doHelp
方法。这个指定形态分发的动作在
doDispatch
里面都会指明。如果
portal
容器提供者需要支持一种新的形态,那么必须重载
doDispatch
方法。
8.6
定义
portlet
形态
Portlet
通过在它的部署描述器内配置
portlet
形态来获得它能使用的
portal
容器支持的形态。每个
Portlet
都必须支持
VIEW
形态,而且
VIEW
形态无需特别指定。
下面的例子显示了一个配置
Portlet
形态的样本:
...
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>edit</portlet-mode>
<portlet-mode>help</portlet-mode>
...
</supports>
<supports>
<mime-type>text/vnd.wap.wml</mime-type>
<portlet-mode>help</portlet-mode>
...
</supports>
...
以上的配置说明了,该
portlet
在
html
标记语言下支持
edit ,help
形态,当然还支持默认的
view
形态。在
wml
语言环境下,支持
help
以及
view
形态。
===
以上是翻译节选,以后会陆续刊出其它章节
欢迎转载共同交流