最新最全的Portlet 通訊過程詳解
本文通過詳細的步驟介紹了 JSR 168 Portlet 通訊的場景以及實現它們之間通訊的過程。
在 Portal 的開發過程中,Theme 與 portlet 之間的通訊,以及 portlet 之間的通訊是開發人員常常遇到的問題。通常 Portlet 之間需要能夠互相通訊,即一個 portlet 的狀態發生改變,要通知其他的 portlet,這些收到通知的 Portlet 狀態也要做相應的改變。根據 JSR 168 規範,Portlet 由容器管理,它們之間是相互獨立的,並不共享 Session 物件。那麼如何在 Portlet 之間傳遞引數呢?在本文中,將根據不同應用場景介紹引數傳遞的方式。
IBM Rational Application Developer V7.0 和 IBM Rational Software Architect V7.0 是 IBM Rational 軟體交付平臺產品系列中的第一款產品,它們包含了對 IBM WebSphere Portal V6.0 開發的完整支援。在下面的例項中,我們以 IBM Rational Software Architect V7.0 為開發平臺,對 Portlet 的引數傳遞進行介紹。
首先,我們先介紹一些 portal 的基本概念。
Portal 是一個基於 web 的應用程式,它主要提供個性化、單點登入、不同來源的內容整合以及存放資訊系統的表示層。
Portlet 是基於 java 技術的 web 元件,它由 portlet 容器管理、並處理請求,並動態生成輸出內容。就像 servlets 是專為將合成頁面裡的內容聚集在一起而設計的。通常請求一個 portal 頁面會引發多個 portlets 被呼叫。每個 portlet 都會生成標記段,並與別的 portlets 生成的標記段組合在一起嵌入到 portal 頁面的標記內。
為規範 Portal,SUN 於 2003 年底制定了 JSR168,它定義了 portlet 標準,並給出了一個實現介面。
每個 portlet 頁面由一個或多個 portlet 視窗組成,每個 portlet 視窗又分為兩部分:一個是主題外觀(Theme),它決定了 portlet 視窗的標題條、控制和邊界的樣式;另一個是 portlet 段,它由 portlet 應用填充。
對放在同一個頁面上的 Portlet.,如果其中的某個 Portlet 做了提交等操作導致 portal 重新整理, 這個頁面內的每一個 portlet 都會被 render。要實現引數的傳遞通常有 3 個步驟:定義源 portlet,定義目標 portlet,關聯源 portlet 和目標 portlet。
首先我們先建立一個Portlet Project,點選Next;
在Project name中輸入MyProjectproj,Target Runtime選擇Websphere Portal v6.0,在Portlet API中選擇JSR 168 Portlet,選中Create a Portlet,在Project Name中輸入SenderPortlet,在Portlet Type中選擇Basic Portlet,選擇Show Advanced Settings,點選Next;
在Project Facets皮膚中,選中Java,在version中選擇1.4,其他項保持不變,點選Next;
在Portlet Settings對話方塊中修改Package Prefx為com.ibm.myportlet,其他選項保持預設,點選Finish。
至此,我們已經建立了一個新的 Portlet 專案,其中包含一個名稱為 SenderPortlet 的 Portlet。
在Project中點選右鍵,點選New->Portlet,彈出 Portlet 建立嚮導對話方塊;
在Project中選擇MyPortletproj,在Project name中輸入ReceiverPortlet,Portlet中選擇Baisc Portlet,點選Next;
在Portlet Settings對話方塊中修改Package Prefx為com.ibm.myportlet,其他選項保持預設,點選Finish。
這樣我們就建立了ReceiverPortlet,並把它加入到了MyPortletproj專案中。
在SenderPortlet上點選右鍵,點選Coorperative->EnablethisProtlettoSendData(Source) …
在Coorperative對話方塊中,在輸入框DataTypeURI中輸入http://myportletproj#MyDataType,在Java Type中輸入java.lang.String,點選Next;
在Property Caption中保留預設值outputProperty Property,在Action Caption中保留預設值SourceAction Action,點選Next;
點選Finish。
SenderPortlet中processAction程式碼片斷。我們在上面定義了傳送的引數名稱為outputProperty
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-619695/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 例項詳解不同VLAN間通訊(轉發過程)
- js陣列方法詳解(最新最全)JS陣列
- 圖解Flutter建立Isolate的過程及通訊圖解Flutter
- 史上最全Web端即時通訊技術原理詳解Web
- https的通訊過程HTTP
- 最新、最全面的LAMP+wordpress安裝過程!!LAMP
- 使用tcpdump觀察ARP通訊過程和ARP報文詳解TCP
- TCP/IP的通訊過程-VeCloudTCPCloud
- Flink - 元件通訊過程元件
- MapReduce過程詳解
- 儲存過程的詳解儲存過程
- 漫遊ZooKeeper nio通訊過程
- 一次HTTP通訊過程HTTP
- 使用tcpdump觀察DNS通訊過程TCPDNS
- PHP-FPM 與 NGINX 通訊過程PHPNginx
- xmpp即時通訊詳解
- 最新最全的 layUI 框架使用教程視訊教程分享UI框架
- PHP 協程實現過程詳解PHP
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- Mybatis詳解(二) sqlsession的建立過程MyBatisSQLSession
- 【Node】詳解模組的實現過程
- 三-類的載入過程詳解
- SSL/TLS 握手過程詳解TLS
- RabbitMQ安裝過程詳解MQ
- 轉:DNS解析過程詳解DNS
- mongo 儲存過程詳解Go儲存過程
- 【elasticsearch】搜尋過程詳解Elasticsearch
- nagios配置過程詳解iOS
- mysql儲存過程詳解MySql儲存過程
- oracle建庫過程詳解Oracle
- Redis複製過程詳解Redis
- 詳解 CmProcess 跨程式通訊的實現
- 基於 ThinkJS 的 WebSocket 通訊詳解JSWeb
- Java中的執行緒通訊詳解Java執行緒
- 史上最全webview詳解WebView
- Android程式間通訊詳解Android
- Vue 元件通訊方式全面詳解Vue元件
- 從網路通訊的演進過程徹底搞懂Redis高效能通訊的原理(全網最詳細,建議收藏)Redis