posts - 431,  comments - 344,  trackbacks - 0

像 Servlet 一样,编写的 Portlet 也必须直接或者间接的扩展基类 GenericPortlet ,这个是由 JCP 针对 Portal 提出的 JSR168 规范定义的。只要扩展自规范的 GenericPortlet ,所有的 Portlet 都可以在支持 JSR168 规范的 Portal 服务器上运行。

GenericPortlet 统一定义了可供 Portal 容器识别和调用的方法,包括:

public Init() :初始化;

public Init(PortletConfig) :初始化;

public getInitParameter(String) :取得在 Portlet.xml 中定义的初始化参数;

public getInitParameterNames() :取得在 Portlet.xml 中定义的全部初始化参数;

public getPortletConfig() :取得包含初始化参数的配置对象 PortletConfig 实例;

public getPortletContext() :取得 Portlet 上下文;

public getPortletName() :取得在 Portlet.xml 中定义的 Portlet 名称。

public getResourceBundle(Locale) :取得 Portlet 国际化的 Resource Bundle ;

protected getTitle(RenderRequest) :取得 Portlet 的标题;

protected doView(RenderRequest , RenderResponse) : Portlet 浏览模式的处理方法;

protected doEdit(RenderRequest , RenderResponse) : Portlet 编辑模式的处理方法;

protected doHelp(RenderRequest , RenderResponse) : Portlet 帮助模式的处理方法;

protected doDispatch(RenderRequest , RenderResponse) : Portlet 行为分发;

protected processAction(ActionRequest , ActionResponse) : Portlet 处理 Action Request 的方法;

protected render(RenderRequest , RenderResponse) : Portal 处理 Render Request 的方法;

public destroy() : Portlet 销毁,终止其生命周期。

在 Portlet Portal 运行的时候, doView 、 doEdit 、 doHelp 三个方法分别被调用,用以生成 Portlet 标记。同样也可以调用 Servlet 生成 Portlet 标记,或者不调用 JSP 或者 Servlet ,直接在方法中得到 PrintWriter 然后用最简单的 pw.println() 打印出内容。这个过程类似 Servlet ,如下:

PrintWriter pw = renderResponse.getWriter();

pw.println(“Hello , world!”);

与 Servlet 类似,可以使用 getInitParamter(String s) 得到配置文件中 Portlet 的初始值,只不过 Servlet 在 web.xml 中,而 Portlet 在 portlet.xml 中。

portlet.xml:

       <init-param>
           <name>jspView</name>

           <value> /jsp/view.jsp</value>
       </init-param>


针对如上portlet.xml中的初始化信息,可以采用如下的调用方式:

SimplePortlet.java :

String jspName = getPortletConfig().getInitParameter("jspView");

posted on 2007-01-24 11:02 周锐 阅读(1803) 评论(0)  编辑  收藏 所属分类: Portal