<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    lbom

    小江西

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      18 隨筆 :: 21 文章 :: 69 評(píng)論 :: 0 Trackbacks
    ?Portlet開發(fā)基知識(shí)

    1.portlet.xml文件,放置在WEB_INF/portlet.xml下面。典型的例子:

    <portlet>
    <description>Description goes here</description>
    <portlet-name>first</portlet-name>
    <portlet-class>com.malani.examples.portlets.jsr168.FirstPortlet
    </portlet-class>
    <portlet-info>
    <title>First</title>
    </portlet-info>
    </portlet>

    portlet-class就是實(shí)現(xiàn)的類。可以和web.xml對(duì)照比較一下。

    2.實(shí)現(xiàn)的Portlet類。和傳統(tǒng)的servlet一樣,portal容器來(lái)管理protlet的生命周期。它必須實(shí)現(xiàn)javax.portlet.Portlet接口。但是jsr168標(biāo)準(zhǔn)提供了一個(gè)方便類:GenericPortlet你可以直接
    繼承它就ok了。

    1)生命周期,同servlet一樣Portlet必須有自己生命周期。這定義在javax.portlet.Portlet接口中。它的方法是:init(),render(),processAction(),destroy().但創(chuàng)建portlet實(shí)例的時(shí)候調(diào)用init()方法。它完成一些需要花費(fèi)昂貴的資源的動(dòng)作。但實(shí)例被銷毀的時(shí)候,容器調(diào)用destroy方法來(lái)釋放這些資源。

    Portlet規(guī)范清晰的區(qū)分了render請(qǐng)求和action請(qǐng)求的區(qū)別。renderRequest()會(huì)調(diào)用該portlet上的render()方法,actionRequst()會(huì)調(diào)用processAction()方法.要注意的是一次用戶完整的請(qǐng)求將是:portal頁(yè)面上的所有的protlet的 render()調(diào)用,該請(qǐng)求protlet的processAction()調(diào)用。具體看圖:

    3.Portlet模式

    VIEW模式是你必須實(shí)現(xiàn)的,EDIT,HELP模式是可選的。你可以通過修改doEdit()和doHelp()
    方法來(lái)實(shí)現(xiàn)這些模式。另外還需要在portlet.xml配置模式:

    <supports>
    <mime-type>text/html</mime-type>
    <portlet-mode>edit</portlet-mode>
    <portlet-mode>help</portlet-mode>
    </supports>

    修改本文件但沒有實(shí)現(xiàn)該模式容器會(huì)拋出 javax.portlet.PortletException異常.

    實(shí)現(xiàn)window狀態(tài),注意JSR 168并沒有對(duì)這個(gè)進(jìn)行規(guī)定,但webLogic 完成了:

    <portlet>
    <portlet-name>state</portlet-name>
    <supports>
    <mime-type>text/html</mime-type>
    <excluded-window-state>minimized</excluded-window-state>
    <excluded-window-state>maximized</excluded-window-state>
    </supports>
    </portlet>

    包含JSP文件:

    上面的例子中我們?cè)赿oView方法中通過方法得到Writer實(shí)例,這樣可以輸出HTML片斷。但是,
    我們并不推薦您這樣做。我們推薦您使用JSP來(lái)達(dá)到視圖-java的分離。為了包含一個(gè)特定的jsp
    首先你必須得到PortletContext.在PortletContext中,通過調(diào)用getRequestDispatcher()方法
    得到PorletRequestDispatcher,通過它的includer()方法來(lái)包含JSp例如;
    // execute the necessary logic here...
    PortletRequestDispatcher aDispatcher =
    getPortletContext().getRequestDispatcher(
    "/IncludePortlet/includeView.jsp"
    );
    aDispatcher.include(aRequest, aResponse);

    處理動(dòng)作

    在標(biāo)準(zhǔn)的web應(yīng)用程序中,提交表單,或者一個(gè)動(dòng)作url常見的。JSR168規(guī)范中定義了portlet taglib
    來(lái)幫助我們完成這些工作:

    <form action="<portlet:actionURL/>" method="post">
    ...
    </form>

    提交的話會(huì)自動(dòng)調(diào)用該portlet的processAction(ActionRequest aRequest, ActionResponse aResponse)方法,這就跟你傳統(tǒng)方式一樣了reqeust的getParameter()或者是getAttribute()來(lái)
    得到傳來(lái)的參數(shù)。

    processAction()方法設(shè)置response對(duì)象中的值。不要使用ActionRequest或ActionResponse對(duì)象的setAttribute()方法。值不會(huì)從processAction()傳遞到render()方法,而且在JSP中是不可用的。相反要使用ActionResponse對(duì)象的setRenderParameter()方法。這些render參數(shù)將對(duì)所有后續(xù)render請(qǐng)求可用,這一點(diǎn)與典型的Web應(yīng)用程序請(qǐng)求屬性很不相同。典型的Web application請(qǐng)求屬性只對(duì)于一個(gè)請(qǐng)求可用。另一方面,render請(qǐng)求參數(shù)對(duì)于許多后續(xù)render請(qǐng)求可用。render參數(shù)保持可用直到值被動(dòng)作的重新執(zhí)行顯式地修改或刪除。

    所呈現(xiàn)的參數(shù)是怎樣顯示在JSP上的呢?應(yīng)使用來(lái)自portlet標(biāo)簽庫(kù)的defineObjects標(biāo)簽來(lái)定義portlet對(duì)象。該標(biāo)簽使renderRequest、renderResponse和portletConfig portlet對(duì)象在頁(yè)面中可用。參數(shù)通過調(diào)用renderRequest對(duì)象的getParameter()方法來(lái)顯示。請(qǐng)參考與所包含的源代碼示例中的favoriteColorView.jsp。

      portlet FavoriteColor也展示了其他概念。第一個(gè)是如何在processAction()方法中用編程的方法改變portlet模式。調(diào)用ActionResponse對(duì)象的setPortletMode()方法來(lái)修改portlet模式。第二個(gè)概念是如何使用一個(gè)HTML鏈接來(lái)修改portlet模式。該鏈接使用來(lái)自portlet標(biāo)簽庫(kù)的renderURL標(biāo)簽生成。根據(jù)希望的portlet模式指定portletMode屬性的值。請(qǐng)參考源代碼示例中的FavoriteColorPortlet類和favoriteColorView.jsp頁(yè)面。

    posted on 2006-04-12 14:07 lbom 閱讀(642) 評(píng)論(0)  編輯  收藏 所屬分類: 網(wǎng)絡(luò)資料
    主站蜘蛛池模板: 浮力影院第一页小视频国产在线观看免费| 国产一精品一av一免费爽爽| 在线观看日本免费a∨视频| 亚洲AV无码一区二区乱子伦| 美女被cao网站免费看在线看| 亚洲中文字幕在线观看| 巨胸喷奶水视频www免费视频| 中文字幕中韩乱码亚洲大片| 国产精品综合专区中文字幕免费播放| 亚洲日韩国产成网在线观看| caoporm超免费公开视频| 亚洲中文字幕不卡无码| 国产成人免费AV在线播放| 亚洲成A人片在线观看WWW| 99精品一区二区免费视频| 亚洲欧洲日产v特级毛片| 国产高清不卡免费在线| 伊人久久亚洲综合影院首页| 免费国产怡红院在线观看| 久久高潮一级毛片免费| 亚洲国产人成在线观看69网站| 免费人妻无码不卡中文字幕系| 亚洲日韩乱码久久久久久| 成年女人色毛片免费看| 深夜福利在线免费观看| 亚洲国产精品无码av| 精品福利一区二区三区免费视频| 国产精品亚洲精品青青青| 免费夜色污私人影院在线观看| 国产在线精品免费aaa片| 亚洲理论片在线中文字幕| 日本一道一区二区免费看 | 亚洲激情校园春色| 成人爱做日本视频免费| 国产精品1024在线永久免费 | 亚洲国产另类久久久精品| **一级一级毛片免费观看| 香蕉视频亚洲一级| 久久久久亚洲av无码尤物| 好吊妞在线成人免费| 中文字幕乱码免费看电影|