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

分享

Jetspeed2學(xué)習(xí)筆記(三)

 cecho 2007-03-25
12、Portlet對(duì)動(dòng)作的處理過(guò)程
 
在一個(gè)標(biāo)準(zhǔn)的Web應(yīng)用程序中,一個(gè)HTML表單提交將導(dǎo)致執(zhí)行一些業(yè)務(wù)邏輯。業(yè)務(wù)處理的結(jié)果,要么作為屬性而被設(shè)置在請(qǐng)求或會(huì)話(huà)中并轉(zhuǎn)發(fā),要么包含到下一個(gè)JSP。

  在一個(gè)JSR 168 portlet中,一個(gè)HTML表單的動(dòng)作URL應(yīng)該是什么樣呢?JSR 168定義了一個(gè)JSP標(biāo)簽庫(kù),稱(chēng)為portlet taglib。HTML表單的動(dòng)作URL可以使用actionURL portlet標(biāo)簽生成。例如(請(qǐng)參考favoriteColorEdit.jsp文件):
<form action="<portlet:actionURL/>" method="post">
...
</form>
提交該HTML表單將會(huì)導(dǎo)致調(diào)用portlet的processAction(ActionRequest aRequest, ActionResponse aResponse)方法。像通常一樣,可以通過(guò)調(diào)用request對(duì)象的getParameter()方法來(lái)獲得表單參數(shù)。注意:通過(guò)提交表單調(diào)用動(dòng) 作,但portlet中卻沒(méi)有processAction()方法,將會(huì)導(dǎo)致javax.portlet.PortletException。

  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í)行顯式地修改或刪除。

  考慮portlet FavoriteColor。它在VIEW模式顯示了一個(gè)用戶(hù)偏好的顏色,但是可以在EDIT模式下更改。在EDIT模式下提交偏好的顏色選擇將調(diào)用 processAction()方法。該方法獲得偏好的顏色請(qǐng)求參數(shù),并將其設(shè)置為render參數(shù)。這樣,偏好的的顏色render參數(shù)將在所有后續(xù) render請(qǐng)求中都可用。

  所呈現(xiàn)的參數(shù)是怎樣顯示在JSP上的呢?應(yīng)使用來(lái)自portlet標(biāo)簽庫(kù)的defineObjects標(biāo)簽來(lái)定義portlet對(duì)象。該標(biāo)簽使renderRequestrenderResponseportletConfig portlet對(duì)象在頁(yè)面中可用。參數(shù)通過(guò)調(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類(lèi)和favoriteColorView.jsp頁(yè)面。
 
13、portlet中對(duì)預(yù)先配置參數(shù)的讀取
在portlet的開(kāi)發(fā)中,可以在portlet.xml文件中預(yù)先配置相關(guān)的參數(shù),然后在代碼中通過(guò)PortletConfig來(lái)進(jìn)行讀取,具體示例如下:
a、 在portlet.xml文件中添加如下配置片斷,添加一個(gè)參數(shù):
portlet.xml:

          <init-param>
               <name>jspView</name>
               <value>/jsp/view.jsp</value>
     </init-param>
 
b、 在portlet程序中如下讀取其配置:
SimplePortlet.java:

String jspName = this.getPortletConfig().getInitParameter("jspView");
 
14、 Portlet標(biāo)簽庫(kù)
 
a、 定義對(duì)象(defineObjects)標(biāo)簽:
如果打開(kāi)其中的一個(gè)JSP文件,你會(huì)發(fā)現(xiàn),和Servlet一樣,JSP中可以使用Portlet的一些variables.例如:

    renderResponse
    renderRequest
    portletConfig--------
可以用此變量獲得portlet.xml文件中的配置信息

但是必須聲名:
<portlet:defineObjects/>其中不可以定義任何屬性或者包含任何內(nèi)容.
 
b、 動(dòng)作URL(actionURL )標(biāo)簽:
 
屬性                     值類(lèi)型                     對(duì)應(yīng)值
windowState               String                     minimized, normal, maximized
portletMode               String                      view, edit, help
var                       String                    
任何值
secure                    String                      true,false

<portlet:actionURL windowState=”normal” portletMode=”edit”>
<portlet:param name=”action” value=”login”/>
</portlet:actionURL>

以上創(chuàng)建一個(gè)action URL , 當(dāng)訪問(wèn)它時(shí)將使portlet window變?yōu)閚ormal 裝態(tài), 模式變?yōu)?nbsp;edit。
可以通過(guò)如下代碼在processAction中判斷當(dāng)前操作模式:
public void processAction(ActionRequest request, ActionResponse response)
    throws PortletException, IOException {
        if (request.getPortletMode() == PortletMode.VIEW) {   //瀏覽頁(yè)
           …..
}else if(request.getPortletMode() == PortletMode.EDIT){ //編輯狀態(tài)
    …..
}else if(request.getPortletMode() == PortletMode.HELP){ //幫助狀態(tài)
    …..
}
 
 
c、 renderURL 標(biāo)簽:
屬性                        值類(lèi)型                 對(duì)應(yīng)值
windowState                  String                 minimized,normal,maximized
portletMode                  String                  view, edit, help
var                         String                 
任何值
secure                       String                  true,false

<portlet:renderURL portletMode=”view” windowState=”maximized”>
     <portlet:param name=”number” value=”1”/> 
     <portlet:param name=”page” value=”2”/>
</portlet:renderURL>

創(chuàng)建一個(gè)render URL , 當(dāng)訪問(wèn)它時(shí)將使portlet window變?yōu)閙aximized裝態(tài), 模式變?yōu)?nbsp;view.
 
d、 namespace Tag
為目前的Portlet產(chǎn)生一個(gè)唯一的Value. 防止和其他的Portlet 或者Portal頁(yè)面上的value產(chǎn)生沖突.
<A HREF=”javascript: <portlet:namespace/>doFoo()”>Foo</A>
 
e、 param Tag:這個(gè) tag 是定義一個(gè)參數(shù)值, 可能是放在 actionURL 或 renderURL 之中. param Tag 不準(zhǔn)包含任何 Body Content.
屬性     值類(lèi)型
name     String
<portlet:param name=”myParam” value=”someValue”/>
注: param Tag不可以有body content.
 
15、portlet緩存
控制portlet是否被緩存,及緩存的時(shí)間可以在portlet.xml文件中用如下標(biāo)簽:
<expiration-cache>0</expiration-cache>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(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)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多