百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

1  百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

“常用Portlet”指的是,在我做過的超過50家的企業(yè)門戶實施中,幾乎每個客戶都要求開發(fā)的幾個Portlet。這些Portlet有的是公共信息,有的是工具箱,有的是車次查詢,有的是天氣預報,總之是用戶在日常辦公生活中最常使用的一些小功能。它們本身涉及的開發(fā)量不大,但卻依賴于Portal開發(fā)的一些技巧。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、象山網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5開發(fā)商城開發(fā)、集團公司官網(wǎng)建設、成都外貿網(wǎng)站建設公司、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為象山等各大城市提供網(wǎng)站開發(fā)制作服務。

讀者掌握了這些Portlet的開發(fā),一是為本章的學習嘗試實踐,二是你在接手一個Portal項目時,可以直接拿這些Portlet來用。依據(jù)我的經(jīng)驗,這些Portlet都是大眾客戶所喜歡和需要的,所以本節(jié)的題目又叫“百寶箱”。

1.1  開發(fā)公共信息相關的Portlet

1.1.1  要旨

Portal系統(tǒng)在用戶不登錄的前提下,就是一個展現(xiàn)公共信息的網(wǎng)站,唯一不同的是,這個網(wǎng)站的內容是以組件的形式構成的。用專業(yè)術語來說,就是整個Portal網(wǎng)站是由無數(shù)個Portlet組成的,每個Portlet是一個方面的內容。在現(xiàn)實的開發(fā)中,由于已經(jīng)將自己的公共信息數(shù)據(jù)化,所以我們只要從數(shù)據(jù)庫中提取這些信息就可以了。下面舉了一些例子,這些例子都是在企業(yè)門戶系統(tǒng)開發(fā)中經(jīng)常碰到的。

這是IT應用的一個例子 開發(fā)常用的Portelt(一)

這是“×××”的幾個小例子,如圖1-2所示。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

圖1-2  開發(fā)常用的Portelt(二)

要提取這些公共信息,通常有兩種方法。

— 編寫Portlet,在Portlet的數(shù)據(jù)部分直接讀取后臺數(shù)據(jù)庫。這樣做比較獨立,且風格統(tǒng)一,但是會帶來巨大的系統(tǒng)開銷,所以不建議使用。

— 編寫讀取公共信息的頁面,該頁面可以運行在具體的應用服務器上,如WebSphere、WebLogic、Tomcat等。我們只要編寫一個Portlet,在Portlet中嵌入一個Iframe,用來顯示這個頁面就可以了。

本節(jié)主要針對第二種方法來討論公共信息Portlet的開發(fā)方法。本節(jié)按照開發(fā)的步驟一步步介紹,沒有主次之分。

1.1.2  開發(fā)步驟

1.新建地址列表的屬性文件

JspURL.properties的內容是結構化數(shù)據(jù),用來存儲各新聞頁面的URL。例如:

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

2.在Portlet數(shù)據(jù)層讀取屬性文件

GetUrl用于從JspURL.properties屬性文件中讀取各個新聞頁面所在的URL。該類的大致內容如下:

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

我們在View頁面中嵌入一個Iframe,并指定它的URL屬性為從這個類中讀到的地址。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

OK,這個公共信息的Portlet就算開發(fā)完成了,我們把它打包并發(fā)布到Portal門戶系統(tǒng),完成權限分配,就可以定制并顯示在你的門戶網(wǎng)站了。

1.2  開發(fā)一個工具箱Portlet

車次查詢、天氣預報等公共小工具,是當前門戶網(wǎng)站中比較受歡迎的小組件。這里我們以在Portlet頁面上放置三個小圖標,點擊時分別進入列車車次查詢、航班信息和計算器為例,簡單介紹它們的開發(fā)方法:

開發(fā)這個Portlet請遵循以下步驟進行操作。

1.2.1  使用表格引入圖片

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

1.2.2  在圖片上繪制熱點用作鏈接

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

1.2.3  對鏈接給出事件處理

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

例如,我們可以對“天氣預報”做如下處理。

通過天氣預報Portlet可以查看到公司下屬單位所在地市以及全國幾個主要城市的當天天氣情況,如圖1-3所示。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

圖1-3  開發(fā)天氣預報的Portlet

單擊右側的百寶箱:幾乎所有項目都會用到的Portlet開發(fā)按鈕進入編輯頁面,如圖1-3a所示,這個Portlet允許每個用戶設置預報地點。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

圖1-3a  天氣預報Portlet允許每個用戶設置預報地點

OK,這個Portlet的View部分就算處理完成了,至于Model和Controller部分,可以添加這些事件的處理方法,用來讀取實際數(shù)據(jù)。比如,從指定的URL處讀取天氣預報信息,并存儲到一個對象里,寫入Session,然后在View里面顯示出來。

1.3  開發(fā)個人日程的Portlet

1.3.1  開發(fā)要旨

匿名用戶打開Portal頁面時看到的是一個日歷,Portal用戶登錄后,多出一個“添加日程/日程管理”按鈕,用戶可以在這里添加、管理自己的日程。

1.3.2  數(shù)據(jù)庫設計

個人日程管理字段比較簡單,數(shù)據(jù)并發(fā)處理很少,對數(shù)據(jù)庫要求不高,所以我們選用Access。具體的字段設置不再贅述。

1.3.3  業(yè)務流程設計

Portlet首先試圖獲取用戶id,如果id為空,則說明用戶未登錄,此時顯示一個日歷;如果id非空,則顯示個人日程。Portlet會從數(shù)據(jù)庫中檢索此用戶id的日程條目,然后將有日程的日期變?yōu)榧t色,用戶點擊該日期時彈出此日程條目。在日程條目上,用戶可以編輯自己的日程;用戶添加日程時,以Portal取得的用戶id為主鍵,加入數(shù)據(jù)庫。

具體的業(yè)務流程如下。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā) 通過個人日程的Portlet可以了解當前日期及日程安排,如圖1-4所示。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

圖1-4  個人日程的Portlet允許每個人定義自己的備忘錄

通過調整年、月可以看到相應的日期。如果該日期有日程安排活動,則會顯示不同的顏色,點擊該日期就可以看到日程安排情況,如圖1-5所示。

單擊“新建日程”,會出現(xiàn)如圖1-6所示的界面,可以添加自己的個人日程。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

圖1-5  有消息提醒的日期會在個人日程上以不同的顏色顯示

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

圖1-6  可以添加自己的個人日程

用戶可以添加日程安排,包括日程標題、起始/結束時間、提醒設置、日程內容等。

其中的起始/結束時間都可以精確到分鐘?!疤嵝言O置”中的“循環(huán)提醒”用于設置該信息是以天還是周、月、年等進行循環(huán)來顯示;“開始時間前x分鐘彈出提醒”是根據(jù)用戶的設置,在該日程開始前多長時間給用戶提醒;“短信提醒”則是通過短信的方式來提醒用戶(目前因為短信平臺還沒有建成,所以此功能暫時不能使用)。當設置完成并保存后,安排日程的日期就會變成淺藍色,且會在“今日提醒”中顯示出來。

日程提醒有三種方式:一是以列表顯示;二是滾動提醒,在“我的工作”頁面的“今日提醒”模塊中進行滾動提醒;三是彈出窗口提醒,在“開始前x分鐘彈出提醒”設定的時間點(服務器時間),在“我的工作”頁面中彈出窗口進行提醒。

1.3.4  代碼實現(xiàn)

1.顯示頁面

這里只顯示比較重要的部分。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

2.顯示日程條目

用戶點擊有日程提示的日期時,會彈出該日程。

具體編碼略,我采用的顯示格式如下。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

3.增加日程

單擊“增加日程”,可以為登錄用戶添加日程。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

4.修改日程

在顯示的日程條目上,單擊“編輯日程”,可以修改此日程條目。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

1.3.5  界面美化

為了使日程顯示界面清晰、美觀,還需要進一步美化,美化的過程本書不再介紹。

1.4  開發(fā)一個Excel文件轉txt的工具Portlet

這個工具Portlet的用途是,很多時候應用系統(tǒng)的一些數(shù)據(jù)存儲在Excel表格里,我們需要導出這些數(shù)據(jù),例如:用戶與用戶組信息。

1.4.1  使用說明

(1)本工具使用了jxl.jar包,所以請先將此包加入到Porltet類庫。當然,你也可以直接在Tomcat中調試,那么目標容器是Tomcat,則需要將此文件手工復制到Tomcat的類庫文件夾里。

(2)將主文件reansfer.jsp復制到容器目錄下,在瀏覽器里直接訪問該頁面,程序即執(zhí)行。

(3)在默認情況下,需要將源文件*.xls復制到C:\下,生成的文件名稱為:qas_1.txt。

(4)如果需要批量轉換,或者需要自己選擇文件、文件夾,則請自行修改代碼。

1.4.2  代碼詳解

要開發(fā)這個Portlet,首先需要到網(wǎng)上下載一個Excel轉txt的控件,然后新建一個Portlet,在Portlet的顯示層(PortletView.jsp文件)里控制邏輯。

 

下面是該文件的部分源代碼,僅供參考。

百寶箱:幾乎所有項目都會用到的Portlet開發(fā)

網(wǎng)頁題目:百寶箱:幾乎所有項目都會用到的Portlet開發(fā)
瀏覽路徑:http://bm7419.com/article42/iihhec.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站移動網(wǎng)站建設、品牌網(wǎng)站建設、外貿網(wǎng)站建設、做網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網(wǎng)站建設