日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Portlet應(yīng)用開發(fā)實(shí)例

 cecho 2007-03-25
目的:
       開發(fā)一個(gè)符合JSR-168標(biāo)準(zhǔn)的Portlet應(yīng)用,將其部署到Jetspeed2上。熟悉Portlet應(yīng)用的開發(fā)過程和了解Jetspeed2對(duì)Portlet應(yīng)用的支持情況。
 
背景資料:
       JSR-168標(biāo)準(zhǔn):由Java Community Process(JCP)于2003年10月7日發(fā)布的Portlet Specification 1.0最終版本。定義了Portlet應(yīng)用的標(biāo)準(zhǔn)接口。獲得業(yè)界的廣泛支持。
 
內(nèi)容:
       1、Portlet應(yīng)用代碼
       本文中的介紹的Portlet應(yīng)用是由IBM developerworks提供的一個(gè)簡(jiǎn)單Hello World示例。包括了doView方法顯示一個(gè)jsp頁(yè)面。使用Portlet中的processAction方法處理jsp中From表單提交的數(shù)據(jù),并把得到的數(shù)據(jù)放到一個(gè)Java Bean中,該Java Bean又被放到PortletSession中供jsp文件調(diào)用。具體說明和源碼下載可參見:
 
       2、編輯打包
       在編輯時(shí)需要兩個(gè)標(biāo)準(zhǔn)類庫(kù):portlet-api-1.0.jar和pluto-1.0.1.jar。
       注意:在打包時(shí)不要將這兩個(gè)類庫(kù)包含進(jìn)去。因?yàn)樵?/span>Tomcat/shared/lib里已經(jīng)有了,不然就會(huì)報(bào)Cannot create Portlet instance錯(cuò)誤。
       使用JDK的jar命令把項(xiàng)目文件打包成web archive 文件。
 
       3、發(fā)布
       將打包生成的HelloWorld.war文件拷貝到/jetspeed/WEB-INF/deploy目錄下即可。系統(tǒng)會(huì)自動(dòng)部署到Portal中。
 
       4、調(diào)用
       在頁(yè)面編輯狀態(tài)下,點(diǎn)擊新增Portlet會(huì)出現(xiàn)“Portlet選擇器”。里面會(huì)新增一個(gè)“HelloWorld portlet”應(yīng)用。選中后確定就可將其添加到頁(yè)面中。
 
       除此之外還有個(gè)更簡(jiǎn)單的辦法可以顯示portlet。在/jetspeed/WEB-INF/pages目錄下的default-page.psml文件中增加一個(gè)fragment定義。
<fragment id="dp-19" type="portlet" name="HelloWorld::HelloWorldPortlet">
           <property name="row" value="6"/>
           <property name="column" value="0"/>
</fragment>
       其中:
           id 為任意項(xiàng)
           name 為${portlet.application.id}和${portlet.name}的組合。
           ${portlet.application.id}是實(shí)際的war文件名;${portlet.name}為在portlet.xml中定義的<portlet-name>。
          row ,column為頁(yè)面中的位置。
 
       5、錯(cuò)誤及解決方法
       將應(yīng)用部署到頁(yè)面后發(fā)現(xiàn)不能正常顯示,報(bào)Portlet is Not Available錯(cuò)誤。
經(jīng)過對(duì)日志分析,原來(lái)jetspeed2不支持PropertyManager容器服務(wù)。在代碼里使用了renderRequest.getProperty("wps.markup")獲得這個(gè)初始化參數(shù)的值。
       修改程序通過初始化來(lái)獲得參數(shù)的值。
private static String defaultMarkupSource = "";
 
    /**
     * Initialize portlet configuration.
     */
    public void init(PortletConfig config) throws PortletException
      {
        super.init(config);
 
        defaultMarkupSource = config.getInitParameter("wps.markup");
      }
 
private static String getJspFilePath(RenderRequest request, String jspFile)
      {
        //String markup = request.getProperty("wps.markup");
        String markup = defaultMarkupSource;
 
        if (markup == null)
          {
            markup = getMarkup(request.getResponseContentType());
          }
 
        return JSP_FOLDER + markup + "/" + jspFile + "." +
        getJspExtension(markup);
      }
 
       重新編譯部署,應(yīng)用即可正常顯示。
 
總結(jié):
       Jetspeed2.0支持JSR-168標(biāo)準(zhǔn),Portlet應(yīng)用可方便地部署到Jetspeed2.0上,操作非常便捷。應(yīng)用可正常運(yùn)行。不足之處就是不支持Property Manager服務(wù),造成一些Portlet應(yīng)用的移植困難。
 
參考資料:
       楊江,《Hello World,一個(gè)簡(jiǎn)單的JSR 168 portlet》,

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多