“常用Portlet”指的是,在我做過(guò)的超過(guò)50家的企業(yè)門(mén)戶(hù)實(shí)施中,幾乎每個(gè)客戶(hù)都要求開(kāi)發(fā)的幾個(gè)Portlet。這些Portlet有的是公共信息,有的是工具箱,有的是車(chē)次查詢(xún),有的是天氣預(yù)報(bào),總之是用戶(hù)在日常辦公生活中最常使用的一些小功能。它們本身涉及的開(kāi)發(fā)量不大,但卻依賴(lài)于Portal開(kāi)發(fā)的一些技巧。
成都創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、象山網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開(kāi)發(fā)、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為象山等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
讀者掌握了這些Portlet的開(kāi)發(fā),一是為本章的學(xué)習(xí)嘗試實(shí)踐,二是你在接手一個(gè)Portal項(xiàng)目時(shí),可以直接拿這些Portlet來(lái)用。依據(jù)我的經(jīng)驗(yàn),這些Portlet都是大眾客戶(hù)所喜歡和需要的,所以本節(jié)的題目又叫“百寶箱”。
Portal系統(tǒng)在用戶(hù)不登錄的前提下,就是一個(gè)展現(xiàn)公共信息的網(wǎng)站,唯一不同的是,這個(gè)網(wǎng)站的內(nèi)容是以組件的形式構(gòu)成的。用專(zhuān)業(yè)術(shù)語(yǔ)來(lái)說(shuō),就是整個(gè)Portal網(wǎng)站是由無(wú)數(shù)個(gè)Portlet組成的,每個(gè)Portlet是一個(gè)方面的內(nèi)容。在現(xiàn)實(shí)的開(kāi)發(fā)中,由于已經(jīng)將自己的公共信息數(shù)據(jù)化,所以我們只要從數(shù)據(jù)庫(kù)中提取這些信息就可以了。下面舉了一些例子,這些例子都是在企業(yè)門(mén)戶(hù)系統(tǒng)開(kāi)發(fā)中經(jīng)常碰到的。
這是IT應(yīng)用的一個(gè)例子 開(kāi)發(fā)常用的Portelt(一)
這是“×××”的幾個(gè)小例子,如圖1-2所示。
圖1-2 開(kāi)發(fā)常用的Portelt(二)
要提取這些公共信息,通常有兩種方法。
— 編寫(xiě)Portlet,在Portlet的數(shù)據(jù)部分直接讀取后臺(tái)數(shù)據(jù)庫(kù)。這樣做比較獨(dú)立,且風(fēng)格統(tǒng)一,但是會(huì)帶來(lái)巨大的系統(tǒng)開(kāi)銷(xiāo),所以不建議使用。
— 編寫(xiě)讀取公共信息的頁(yè)面,該頁(yè)面可以運(yùn)行在具體的應(yīng)用服務(wù)器上,如WebSphere、WebLogic、Tomcat等。我們只要編寫(xiě)一個(gè)Portlet,在Portlet中嵌入一個(gè)Iframe,用來(lái)顯示這個(gè)頁(yè)面就可以了。
本節(jié)主要針對(duì)第二種方法來(lái)討論公共信息Portlet的開(kāi)發(fā)方法。本節(jié)按照開(kāi)發(fā)的步驟一步步介紹,沒(méi)有主次之分。
1.新建地址列表的屬性文件
JspURL.properties的內(nèi)容是結(jié)構(gòu)化數(shù)據(jù),用來(lái)存儲(chǔ)各新聞頁(yè)面的URL。例如:
2.在Portlet數(shù)據(jù)層讀取屬性文件
GetUrl用于從JspURL.properties屬性文件中讀取各個(gè)新聞頁(yè)面所在的URL。該類(lèi)的大致內(nèi)容如下:
我們?cè)赩iew頁(yè)面中嵌入一個(gè)Iframe,并指定它的URL屬性為從這個(gè)類(lèi)中讀到的地址。
OK,這個(gè)公共信息的Portlet就算開(kāi)發(fā)完成了,我們把它打包并發(fā)布到Portal門(mén)戶(hù)系統(tǒng),完成權(quán)限分配,就可以定制并顯示在你的門(mén)戶(hù)網(wǎng)站了。
車(chē)次查詢(xún)、天氣預(yù)報(bào)等公共小工具,是當(dāng)前門(mén)戶(hù)網(wǎng)站中比較受歡迎的小組件。這里我們以在Portlet頁(yè)面上放置三個(gè)小圖標(biāo),點(diǎn)擊時(shí)分別進(jìn)入列車(chē)車(chē)次查詢(xún)、航班信息和計(jì)算器為例,簡(jiǎn)單介紹它們的開(kāi)發(fā)方法:
開(kāi)發(fā)這個(gè)Portlet請(qǐng)遵循以下步驟進(jìn)行操作。
例如,我們可以對(duì)“天氣預(yù)報(bào)”做如下處理。
通過(guò)天氣預(yù)報(bào)Portlet可以查看到公司下屬單位所在地市以及全國(guó)幾個(gè)主要城市的當(dāng)天天氣情況,如圖1-3所示。
圖1-3 開(kāi)發(fā)天氣預(yù)報(bào)的Portlet
單擊右側(cè)的按鈕進(jìn)入編輯頁(yè)面,如圖1-3a所示,這個(gè)Portlet允許每個(gè)用戶(hù)設(shè)置預(yù)報(bào)地點(diǎn)。
圖1-3a 天氣預(yù)報(bào)Portlet允許每個(gè)用戶(hù)設(shè)置預(yù)報(bào)地點(diǎn)
OK,這個(gè)Portlet的View部分就算處理完成了,至于Model和Controller部分,可以添加這些事件的處理方法,用來(lái)讀取實(shí)際數(shù)據(jù)。比如,從指定的URL處讀取天氣預(yù)報(bào)信息,并存儲(chǔ)到一個(gè)對(duì)象里,寫(xiě)入Session,然后在View里面顯示出來(lái)。
匿名用戶(hù)打開(kāi)Portal頁(yè)面時(shí)看到的是一個(gè)日歷,Portal用戶(hù)登錄后,多出一個(gè)“添加日程/日程管理”按鈕,用戶(hù)可以在這里添加、管理自己的日程。
個(gè)人日程管理字段比較簡(jiǎn)單,數(shù)據(jù)并發(fā)處理很少,對(duì)數(shù)據(jù)庫(kù)要求不高,所以我們選用Access。具體的字段設(shè)置不再贅述。
Portlet首先試圖獲取用戶(hù)id,如果id為空,則說(shuō)明用戶(hù)未登錄,此時(shí)顯示一個(gè)日歷;如果id非空,則顯示個(gè)人日程。Portlet會(huì)從數(shù)據(jù)庫(kù)中檢索此用戶(hù)id的日程條目,然后將有日程的日期變?yōu)榧t色,用戶(hù)點(diǎn)擊該日期時(shí)彈出此日程條目。在日程條目上,用戶(hù)可以編輯自己的日程;用戶(hù)添加日程時(shí),以Portal取得的用戶(hù)id為主鍵,加入數(shù)據(jù)庫(kù)。
具體的業(yè)務(wù)流程如下。
通過(guò)個(gè)人日程的Portlet可以了解當(dāng)前日期及日程安排,如圖1-4所示。
圖1-4 個(gè)人日程的Portlet允許每個(gè)人定義自己的備忘錄
通過(guò)調(diào)整年、月可以看到相應(yīng)的日期。如果該日期有日程安排活動(dòng),則會(huì)顯示不同的顏色,點(diǎn)擊該日期就可以看到日程安排情況,如圖1-5所示。
單擊“新建日程”,會(huì)出現(xiàn)如圖1-6所示的界面,可以添加自己的個(gè)人日程。
圖1-5 有消息提醒的日期會(huì)在個(gè)人日程上以不同的顏色顯示
圖1-6 可以添加自己的個(gè)人日程
用戶(hù)可以添加日程安排,包括日程標(biāo)題、起始/結(jié)束時(shí)間、提醒設(shè)置、日程內(nèi)容等。
其中的起始/結(jié)束時(shí)間都可以精確到分鐘?!疤嵝言O(shè)置”中的“循環(huán)提醒”用于設(shè)置該信息是以天還是周、月、年等進(jìn)行循環(huán)來(lái)顯示;“開(kāi)始時(shí)間前x分鐘彈出提醒”是根據(jù)用戶(hù)的設(shè)置,在該日程開(kāi)始前多長(zhǎng)時(shí)間給用戶(hù)提醒;“短信提醒”則是通過(guò)短信的方式來(lái)提醒用戶(hù)(目前因?yàn)槎绦牌脚_(tái)還沒(méi)有建成,所以此功能暫時(shí)不能使用)。當(dāng)設(shè)置完成并保存后,安排日程的日期就會(huì)變成淺藍(lán)色,且會(huì)在“今日提醒”中顯示出來(lái)。
日程提醒有三種方式:一是以列表顯示;二是滾動(dòng)提醒,在“我的工作”頁(yè)面的“今日提醒”模塊中進(jìn)行滾動(dòng)提醒;三是彈出窗口提醒,在“開(kāi)始前x分鐘彈出提醒”設(shè)定的時(shí)間點(diǎn)(服務(wù)器時(shí)間),在“我的工作”頁(yè)面中彈出窗口進(jìn)行提醒。
1.顯示頁(yè)面
這里只顯示比較重要的部分。
2.顯示日程條目
用戶(hù)點(diǎn)擊有日程提示的日期時(shí),會(huì)彈出該日程。
具體編碼略,我采用的顯示格式如下。
3.增加日程
單擊“增加日程”,可以為登錄用戶(hù)添加日程。
4.修改日程
在顯示的日程條目上,單擊“編輯日程”,可以修改此日程條目。
為了使日程顯示界面清晰、美觀(guān),還需要進(jìn)一步美化,美化的過(guò)程本書(shū)不再介紹。
這個(gè)工具Portlet的用途是,很多時(shí)候應(yīng)用系統(tǒng)的一些數(shù)據(jù)存儲(chǔ)在Excel表格里,我們需要導(dǎo)出這些數(shù)據(jù),例如:用戶(hù)與用戶(hù)組信息。
(1)本工具使用了jxl.jar包,所以請(qǐng)先將此包加入到Porltet類(lèi)庫(kù)。當(dāng)然,你也可以直接在Tomcat中調(diào)試,那么目標(biāo)容器是Tomcat,則需要將此文件手工復(fù)制到Tomcat的類(lèi)庫(kù)文件夾里。
(2)將主文件reansfer.jsp復(fù)制到容器目錄下,在瀏覽器里直接訪(fǎng)問(wèn)該頁(yè)面,程序即執(zhí)行。
(3)在默認(rèn)情況下,需要將源文件*.xls復(fù)制到C:\下,生成的文件名稱(chēng)為:qas_1.txt。
(4)如果需要批量轉(zhuǎn)換,或者需要自己選擇文件、文件夾,則請(qǐng)自行修改代碼。
要開(kāi)發(fā)這個(gè)Portlet,首先需要到網(wǎng)上下載一個(gè)Excel轉(zhuǎn)txt的控件,然后新建一個(gè)Portlet,在Portlet的顯示層(PortletView.jsp文件)里控制邏輯。
下面是該文件的部分源代碼,僅供參考。
網(wǎng)頁(yè)題目:百寶箱:幾乎所有項(xiàng)目都會(huì)用到的Portlet開(kāi)發(fā)
瀏覽路徑:http://jinyejixie.com/article42/iihhec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)