<portlet开发指南>地八章

、 Portlet Modes

portlet的modes用来指定访问的render方法,默认情况下portlet有三种modes,分别是view,edit,help,与其对应默认有三个调用方法,分别是doview,doedit,deohelp。一般情况下portal会对用户使用view,edit,help的权限做一些限制,比如可以让所有用户访问view,help modes,但是只有特殊权限的用户可以访问edit modes。

查看 Portlet Mode

view mode通过名字就可以理解,是用来portlet日常展现的modes,portlet必须具有此mode,portlet在view mode的时候后台访问的是doview方法。

编辑 Portlet Mode

一般来说edit mode用来设置用户的个性化设置,可以通过preferences来设置,一般来说不是所有用户都具备使用edit mode的权限。Edit是一个可选的modes。

帮助 Portlet Mode

Help mode是用来提供portlet的帮助信息的mode,help同样也是一个可选的mode

自定义 Portlet Modes

除了默认提供的三个mode,可以也可以自己来定义mode,比如ibm 的portal中就自己定义了两种mode(config、edit_defaults)。首先需要在portlet.xml进行定义

<custom-portlet-mode>

<portlet-mode>config</portlet-mode>

</custom-portlet-mode>

<custom-portlet-mode>

<portlet-mode>edit_defaults</portlet-mode>

</custom-portlet-mode>

之后要重写请求分发的doDispatch方法

protected void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException {

if (!WindowState.MINIMIZED.equals(request.getWindowState())){

PortletMode mode = request.getPortletMode();

if (CUSTOM_CONFIG_MODE.equals(mode)) {

doCustomConfigure(request, response);

return;

}

else if (CUSTOM_EDIT_DEFAULTS_MODE.equals(mode)) {

doCustomEditDefaults(request, response);

return;

}

}

super.doDispatch(request, response);

}

GenericPortlet Render Handling

可以通过@RenderMode这种方式来定义与view、edit、help mode对应的方法,但是笔者觉得没有什么必要,用默认的方法名称就成了。

受支持的 Portlet Modes

每个Portlet必须定义它们支持的mode类型,如下图

<supports>

<mime-type>text/html</mime-type>

<portlet-mode>view</portlet-mode>

<portlet-mode>edit</portlet-mode>

<portlet-mode>help</portlet-mode>

<portlet-mode>config</portlet-mode>

<portlet-mode>edit_defaults</portlet-mode>

</supports>

posted on 2010-12-20 18:04  sealhui  阅读(1686)  评论(0编辑  收藏  举报