posts - 12, comments - 19, trackbacks - 0, articles - 23
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          By Terry.lee

          SpiritSeekerS@sqatester.com

          ?

          ?

          ???????? 本部份將講述 PortletConfig 對象及其 PortletContext 對象的概念及應(yīng)用 .

          ?

          • PortletConfig 對象
            ServletConfig 對象類似 , PortletConfig 對象提供 Portlet 初始的所需的參數(shù)及其對 PortletContext 對象存取提供相關(guān)方法 .
            ServletConfig 不同處在于 , PortletConfig 對象提供對 Portlet Title Bar 資源的 I18N 支持 , 我們可以設(shè)定不同的 Resource Bundle 文件用以提供多語言的支持 , 如下 portlet.xml 文件 :

          ?

          … …

          ?????????? <portlet-info>

          ???????????????? <title>PortletConfig Example</title>

          ???????????????? <short-title>PortletConfig</short-title>

          ???????????????? <keywords>PortletConfig</keywords>

          ? </portlet-info>

          ? … …

          ?

          以上 Portlet 描述文件中的設(shè)置用于顯示 Portlet Title Bar 文字 , 同樣也可以使用 Resource Bundle 用以顯示 Title Bar 文字 , 如下 :

          ?

          ? … …

          ? <resource-bundle>

          portlets.portletconfig.portletconfigexample

          </resource-bundle>

          ?????????? … …

          ?

          ?

          • A case study

          這里我們將開發(fā)一個(gè)簡單使用 Resource Bundle Portlet. 只需要添加所須的 Resource Bundle 文件 .

          ?

          我們使用英文及其中文的 Resource Bundle, 如下 :

          ?

          3)??? Base Resource Bundle (portletconfigexample.properties)

          ?

          # English Resource Bundle

          #

          # filename: portletconfigexample.properties

          # Portlet Info resource bundle example

          javax.portlet.title=PortletConfig Example

          javax.portlet.short-title=PortletConfig

          javax.portlet.keywords=PortletConfig

          2) Chinese Resource Bundle (portletconfigexample_zh.properties)

          ?

          # Chinese Resource Bundle

          #

          # filename: portletconfigexample.properties

          # Portlet Info resource bundle example

          javax.portlet.title=Portlet配置例子

          javax.portlet.short-title=Portlet配置

          javax.portlet.keywords=Portlet配置

          ?

          ?

          3) portlet.xml

          ?

          … …

          <resource-bundle>

          portlets.portletconfig.portletconfigexample

          </resource-bundle>

          … …




          ??????

          ?

          • 源代碼及 Portlet 相關(guān)配置文件

            1) Portlet (
            PortletConfigExample .java )

          ?

          package portlets.portletconfig;

          ?

          /**

          ? * @author terry

          ? *

          ? * To change the template for this generated type comment go to

          ? * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments

          ? */

          ?

          import javax.portlet.*;

          import java.io.IOException;

          import java.io.Writer;

          ?

          public class PortletConfigExample ? extends GenericPortlet{

          ?

          ? public void doView(RenderRequest request, RenderResponse response)

          ? throws PortletException, IOException

          ? {

          ? response.setContentType( "text/html" );

          ? String view = getPortletConfig().getInitParameter( "view" );

          ? Writer writer=response.getWriter();

          ? writer.write(view);

          ? }

          ?

          ? public void doEdit(RenderRequest request, RenderResponse response)

          ? throws PortletException, IOException

          ? {

          ? response.setContentType( "text/html" );

          ? String edit = getPortletConfig().getInitParameter( "edit" );

          ? Writer writer=response.getWriter();

          ? writer.write(edit);

          ? }

          ?

          }

          ?

          ?

          2)???? Portlet.xml

          ?

          … …

          ?????? <!-- PortletConfig Example -->

          ?????? <portlet>

          ????????????? <description>PortletConfig Example</description>

          ????????????? <portlet-name>PortletConfigExample</portlet-name>

          ????????????? <display-name>disPortletConfigExample</display-name>

          ????????????? <portlet-class>portlets.portletconfig.PortletConfigExample</portlet-class>

          ????????????? <init-param>

          ???????????????????? <name>view</name>

          ???????????????????? <value>Here is View Mode</value>

          ????????????? </init-param>

          ????????????? <init-param>

          ???????????????????? <name>edit</name>

          ???????????????????? <value>Here is Edit Mode</value>

          ????????????? </init-param>

          ????????????? <expiration-cache>-1</expiration-cache>

          ????????????? <supports>

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

          ???????????????????? <portlet-mode>VIEW</portlet-mode>

          ???????????????????? <portlet-mode>EDIT</portlet-mode>

          ????????????? </supports>

          ????????????? <supported-locale>zh</supported-locale>

          ????????????? <supported-locale>en</supported-locale>

          ????????????? <resource-bundle>portlets.portletconfig.portletconfigexample</resource-bundle>

          ? </portlet>
          … …

          ?

          3)???? pageregistry.xml

          ?

          … …

          ????????????? <!-- PortletConfig Example Page -->

          ??? <fragment name="portletconfigpage" type="page">

          ??????? <navigation>

          ??????????? <title>PortletConfig Example Page</title>

          ??????????? <description>PortletConfig Example Page</description>

          ??????? </navigation>

          ??????? <fragment name="row1" type="row">

          ??????????? <fragment name="col1" type="column">

          ??????????????? <fragment name="p1" type="portlet">

          ??????????????????? <property name="portlet" value="10.20"/>

          ??????????????? </fragment>

          ??????????? </fragment>

          ??????? </fragment>

          ??? </fragment>
          … …

          ?

          4)???? PortletRegistry.xml

          ?

          … …

          ???? ?????? ????????<portlet id="20">

          ??????????? ?? <definition-id>portlets.PortletConfigExample</definition-id>

          ??????? </portlet>
          … …

          ?

          將以上源代碼編譯后 , 再通過 Eclipse 生成 / 更新 Portlet web.xml ,? 將所有配置及相關(guān)文件部署后 , 啟動 Tomcat.

          ?

          ?

          ?

          Browser 中加載如下頁面 : Http://localhost:8080/pluto/portal , 可以看到如下的頁面 ( :3-1)

          ?

          如果機(jī)器的 Locale 及語言設(shè)定是以中文簡體為缺省 , 則單擊 PortletConfig Example Page 后可以看到如下 Portlet 頁面 ( 3-1):

          ?

          ???? ????? 3-1

          ?

          : 因?yàn)楝F(xiàn)在 Pluto 的開發(fā)中沒有做 I18N 的處理 , 這里如果你的機(jī)器的 Locale 是中文的話 , 顯示是亂碼 , 請將 IE encoding 設(shè)定為 GB2312(View -> Encoding -> Chinese Simplified), 如圖 3-1.

          ?

          ?

          如果機(jī)器的 Locale 及語言設(shè)定是英文的話 , 將看到如下 Portlet 頁面 ( 3-2):

          ?

          3-2

          ?

          ?

          ?

          資源 :

          ·???????? Pluto
          http://jakarta.apache.org/pluto

          ·???????? Pluto Mail List
          http://news.gmane.org/gmane.comp.jakarta.pluto.user

          ·???????? WSRP Spec1.0
          http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp

          ·???????? Apache WSRP 實(shí)現(xiàn)
          http://ws.apache.org/wsrp4j/

          ·???????? Apache’s Portal, JetSpeed:
          http://jakarta.apache.org/jetspeed/site/index.html

          ·???????? JSR 168:
          http://www.jcp.org/en/jsr/detail?id=168

          · "Portlet 規(guī)范介紹 " By Stefan Hepper Stephan Hesmer

          Part 1: Get your feet wet with the specification's underlying terms and concepts (August 2003)

          Part 2: The Portlet API's reference implementation reveals its secrets (September 2003)

          主站蜘蛛池模板: 河南省| 云林县| 万安县| 南宁市| 呈贡县| 新野县| 沿河| 镇巴县| 米泉市| 广安市| 荣昌县| 阳信县| 民县| 盐山县| 霍山县| 龙游县| 红河县| 乳山市| 客服| 武穴市| 吕梁市| 衡南县| 台湾省| 邯郸县| 盐城市| 德保县| 秀山| 天台县| 图片| 安庆市| 南京市| 东丰县| 江源县| 高碑店市| 遂昌县| 台中县| 吉木萨尔县| 开原市| 怀柔区| 望谟县| 通河县|