溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-11 22:39:06 來源:網絡 閱讀:1170 作者:鄭文平Portal 欄目:軟件技術

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

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

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

1.1  開發公共信息相關的Portlet

1.1.1  要旨

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

這是IT應用的一個例子,如圖1-1所示。

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

1-1  開發常用的Portelt(一)

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

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

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

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

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

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

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

1.1.2  開發步驟

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

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

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

2.在Portlet數據層讀取屬性文件

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

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

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

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

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

1.2  開發一個工具箱Portlet

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

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

1.2.1  使用表格引入圖片

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

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

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

1.2.3  對鏈接給出事件處理

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

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

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

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

1-3  開發天氣預報的Portlet

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

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

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

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

1.3  開發個人日程的Portlet

1.3.1  開發要旨

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

1.3.2  數據庫設計

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

1.3.3  業務流程設計

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

具體的業務流程如下。

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

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

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

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

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


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

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

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

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


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

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

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

1.3.4  代碼實現

1.顯示頁面

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

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

2.顯示日程條目

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

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

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

3.增加日程

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

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

4.修改日程

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

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

1.3.5  界面美化

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

1.4  開發一個Excel文件轉txt的工具Portlet

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

1.4.1  使用說明

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

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

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

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

1.4.2  代碼詳解

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

 

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女