jsp新聞發(fā)布系統(tǒng)設(shè)計參考文檔_第1頁
jsp新聞發(fā)布系統(tǒng)設(shè)計參考文檔_第2頁
jsp新聞發(fā)布系統(tǒng)設(shè)計參考文檔_第3頁
jsp新聞發(fā)布系統(tǒng)設(shè)計參考文檔_第4頁
jsp新聞發(fā)布系統(tǒng)設(shè)計參考文檔_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第19章 新聞發(fā)布系統(tǒng)教學(xué)要求î        學(xué)會分析設(shè)計一個較復(fù)雜的新聞發(fā)布系統(tǒng)î        學(xué)會制作較復(fù)雜的動態(tài)新聞頁î        學(xué)會設(shè)計動態(tài)新聞的管理模塊î        領(lǐng)會Go To Related Page的用法î  

2、0;     能夠綜合應(yīng)用Ultradev 4設(shè)計一個較復(fù)雜的網(wǎng)站19.1 分析新聞發(fā)布系統(tǒng)分兩大功能模塊:供所有用戶查看的動態(tài)新聞顯示模塊和只供管理員進行管理新聞及相關(guān)內(nèi)容的新聞管理模塊,也就是用戶界面和管理界面。19.1.1 用戶界面分析用戶界面所包含的文件î        news.jsp 該頁是查看新聞的主頁面。包括新聞類別、新聞標題等內(nèi)容。如圖所示的是制作好的news.jsp頁在瀏覽器中的樣子。動態(tài)新聞頁î    &

3、#160;   more.jsp 該頁用來顯示所有新聞內(nèi)容。在news.jsp有一個【更多新聞】鏈接,該鏈接就是指向該頁的。î        ShowNews.jsp 該頁用來顯示新聞具體內(nèi)容。news.jsp中的新聞標題就是鏈接到該頁的。î        Buttom.htm和head.htm 這兩個頁是供news.jsp和more.jsp嵌入用的,這樣可以達到定制用戶界面的頁首和頁尾的功能。相關(guān)數(shù)據(jù)表î

4、        表tNewsSubjectID表tNewsSubject 用來存儲新聞類別。表中的每條記錄有兩個字段:fSubjectName字段,用來保存新聞類別;fSubjectID字段,用來保存標記新聞類別的標號,這個標號在表中是惟一的。如右圖所示。î        表tNews 用來存儲新聞的具體內(nèi)容。表中字段fNewsID保存的是每條記錄的編號,這個編號惟一標識一條新聞。字段fTopic保存著新聞標題,字段fContent保存著新聞的具

5、體內(nèi)容,字段fDate保存著錄入新聞時的日期,字段fAuthor保存著新聞的作者,字段fKeyWords保存著查找新聞的所需要的關(guān)鍵字,字段fSubjectID保存著標記新聞類別的標號,這個標號在這個表中不是惟一的。如圖所示。表tNews19.1.2 管理界面分析新聞管理系統(tǒng)結(jié)構(gòu)新聞管理系統(tǒng)可分為密碼管理、類別管理和新聞類別管理3部分。這3個功能模塊通過一個menu.jsp頁聯(lián)系起來。 與類別管理相關(guān)的文件這個功能模塊包括以下4個網(wǎng)頁文件。î        subMan.jsp 通過該頁可以完成對管理類別

6、的編輯、添加和刪除的操作。î        SubDel.jsp 刪除新聞類別。î        SubEdit.jsp 編輯現(xiàn)有的新聞類別。î        SubAdd.jsp 添加新聞類別。與新聞內(nèi)容管理相關(guān)的文件這個功能模塊包括以下3個網(wǎng)頁文件。î        News

7、Man.jsp 通過該頁可以完成對新聞內(nèi)容的編輯、添加和刪除的操作。編輯新聞內(nèi)容的操作在NewsMan.jsp頁中完成。î        NewsDel.jsp 刪除新聞內(nèi)容。î        NewsAdd.jsp 添加新聞內(nèi)容。其他相關(guān)文件î        Menu.jsp 通過該文件來統(tǒng)一管理新聞系統(tǒng)的各項操作,即從該頁可進入對管理系統(tǒng)的密碼、新聞的類

8、別和新聞的內(nèi)容的操作。在瀏覽器中如圖所示。menu.jsp頁î        Adm.htm 這是“管理”部分的主頁面,是一個網(wǎng)頁框架文件,它由左右兩個框架組成,左邊的框架用來顯示menu.jsp頁,右邊的框架用來顯示與新聞類別管理相關(guān)的頁和顯示與新聞內(nèi)容管理相關(guān)的頁。利用網(wǎng)頁框架,使管理員管理新聞系統(tǒng)的各個內(nèi)容更方便,操作簡單。î        Login.jsp 登錄頁,這是設(shè)置安全機制所用到的。進入新聞管理系統(tǒng)前必須登錄。

9、8;        Sorry.htm 登錄失敗時轉(zhuǎn)向該頁。î        Welcome.htm 首次進入新聞管理系統(tǒng)時在Adm.htm頁右邊的框中調(diào)用該頁。說明新聞管理系統(tǒng)的功能。î        PassMan.jsp 對本系統(tǒng)的密碼管理。完成這個新聞管理系統(tǒng)主要是對這組文件的制做,以及合理的安排這些文件。相關(guān)數(shù)據(jù)表新聞管理模塊用到了3個數(shù)據(jù)表。表tNewsS

10、ubject和表tNews,這兩個表已介紹過。還有一個用于存儲用戶名和密碼的表tNewsAdmin。如圖所示。表tNewsAdmin表tNewsAdmin中字段fAdminName存儲登錄管理系統(tǒng)時用的用戶名,字段fAdminPass存儲登錄管理系統(tǒng)時的密碼。對新聞管理的各個操作,也就是對服務(wù)器端這3個表的操作。19.2 制作動態(tài)新聞頁動態(tài)新聞頁news.jsp的制作,使之能夠動態(tài)地顯示當日以及最近幾天的新聞。由于新聞的標題和內(nèi)容都存儲在服務(wù)器端相應(yīng)的數(shù)據(jù)表中了,更新或者添加新聞的操作是對服務(wù)器端相應(yīng)數(shù)據(jù)表中的記錄進行更新,或者向數(shù)據(jù)表中插入記錄。所以,該頁的制作主要是定義記錄集,向頁面添加動

11、態(tài)內(nèi)容,添加服務(wù)器行為。這個頁動態(tài)內(nèi)容分為3部分。î        第1部分是能夠動態(tài)地顯示所有新聞的類別標題,也就是news.jsp中的鏈接【國際新聞】、【國內(nèi)新聞】、【體育新聞】等類別標題。這一部分動態(tài)內(nèi)容就是對新聞進行分類。î        第2部分是當前列出新聞的類別標題。也就是news.jsp中黑色加粗的【國際新聞】。這一部分隨著所選新聞類別變化而變化。它的作用只是標記當前列出的新聞標題的類別。î 

12、0;      第3部分也就是news.jsp下半部分所示的新聞標題了。這一部分列出的新聞標題屬于當前所選的新聞類別,從這一部分可以閱讀相關(guān)新聞的詳細內(nèi)容。這3項需要分別建立記錄集,因為它們需要的動態(tài)數(shù)據(jù)不同。但建立的這3個記錄集還必須通過一個變量傳遞參數(shù),以便使這3項顯示的內(nèi)容一致??赏ㄟ^以下步驟來完成該新聞頁。1.      建立記錄集。2.      向頁面綁定動態(tài)數(shù)據(jù)。3.      添加

13、服務(wù)器行為。其實該頁還包含一個新聞搜索器,在第10章章中有詳述,在此不做介紹。下面來制作這個動態(tài)新聞頁news.jsp。19.2.1 為動態(tài)新聞建立記錄集為該頁添加動態(tài)內(nèi)容的首先要建立相應(yīng)的記錄集。1.      在站點文件窗口中打開news.jsp文件。該頁的靜態(tài)部分已經(jīng)設(shè)計好了。如圖所示。新聞頁的初始文件2.      打開數(shù)據(jù)綁定監(jiān)視器,打開定義記錄集對話框,建立一個取得新聞類別的記錄集。單擊監(jiān)視器面板上的“+”按鈕,從彈出的菜單上選擇Recordset(Query)選項,打開定義記錄集對

14、話框,這時如果出現(xiàn)Advanced Recordset對話框,單擊Simple按鈕,轉(zhuǎn)到Simple Recordset對話框。î        在記錄集對話框的Name文本框中輸入rsSubject。î        在Connection下拉列表中選擇connBHP。î        Table下拉列表框選擇存儲新聞類別的數(shù)據(jù)表tNewsSubject。

15、表tNewsSubject只有兩個字段:字段fSubjectName和字段fSubjectID。這兩個字段分別保存的是新聞類別和新聞類別編號,而建立的這個記錄集需要從數(shù)據(jù)表tNewsSubject中選取這兩個字段,字段fSubjectName中的數(shù)據(jù)作為第1部分的動態(tài)內(nèi)容,字段fSubjectID中的數(shù)據(jù)作為動態(tài)參數(shù)。î        在Column處選擇All單選項。î        在Sort處設(shè)置成按fSubjectID字段的升序

16、排列。3.      單擊OK按鈕保存設(shè)置。這樣第1個記錄集已定義好了。設(shè)置好的記錄集對話框如圖所示。4.      為第2部分動態(tài)內(nèi)容定義記錄集。打開定義記錄集對話框,如出現(xiàn) Simple Recordset對話框,單擊Advanced按鈕,轉(zhuǎn)到Advanced Recordset對話框。設(shè)置如圖所示。在SQL文本框中輸入下面的SQL語句:SELECT fSubjectNameFROM tNewsSubjectWHERE fSubjectID =iNewsID這是一條SELECT語句。描述的仍

17、是從表tNewsSubject中選取記錄中的字段fSubjectName,最后的WHERE子句規(guī)定了只選取字段fSubjectID的值等于變量strNewsID中的值的記錄。變量iNewsID中的值是數(shù)值型,這個數(shù)值標記著當前列出的新聞類別,這樣就把當前新聞類別選取出來了。由于用到了變量iNewsID,所以必須在Variables處定義并賦初值。在Name列輸入變量名strNewsID,在Default Value列處輸入1作為該變量的默認值,即第2部分動態(tài)內(nèi)容在默認情況下列出標記為1的新聞類型和Run-Time Value列處的運行時值request.getParameter(“iSubje

18、ctID”)。第2、第3部分的動態(tài)內(nèi)容所對應(yīng)的記錄集就是通過參數(shù)iSubjectID傳遞動態(tài)數(shù)據(jù)作為選取記錄的條件,這樣使得3部分的動態(tài)內(nèi)容一致。5.      為第3部分動態(tài)內(nèi)容定義記錄集。打開高級記錄集對話框。設(shè)置如圖所示。在SQL處輸入SQL語句如下:SELECT fTopic, fNewsIDFROM tNewsWHERE fSubjectID = iCurrentSubIDORDER BY fDate DESC這個SELECT語句是從數(shù)據(jù)表tNews中選取記錄。WHERE子句規(guī)定了只選取字段fSubjectID值等于iCurrentS

19、ubID變量值的記錄,并且只取記錄的fTopic字段和fNewsID字段。子句ORDER BY fDate DESC規(guī)定了記錄按字段fDate中的值(也就是日期)從大到小排序,從動態(tài)新聞頁的內(nèi)容上說就是先顯示最近發(fā)布的消息。DESC規(guī)定按字段值的降序排序,ASC規(guī)定按字段值的升序排序。上面語句仍用到了變量,所以必須在Variables處定義初值。在Name列輸入變量名iCurrentSubID,在Default Value列處輸入1作為該變量的默認值,即第3部分動態(tài)內(nèi)容在默認情況下列出標記為1的記錄,和Run-Time Value列處的運行時值request.getParameter(“iSu

20、bjectID”) 。向這個變量傳遞參數(shù)的值同向第2部分動態(tài)內(nèi)容傳遞參數(shù)的值相同。19.2.2 使新聞動態(tài)顯示及時性是新聞的要素之一,必須使新聞動態(tài)顯示在頁面上。所以,建立了記錄集后,開始向頁面綁定動態(tài)數(shù)據(jù)。這一操作很簡單,添加步驟如下。1.      向第1部分動態(tài)內(nèi)容添加動態(tài)數(shù)據(jù)。添加動態(tài)數(shù)據(jù)的位置如圖所示的兩條粗線之間的表格中,也就是圖中光標所在的位置。第1部分添加動態(tài)數(shù)據(jù)的位置2.      打開數(shù)據(jù)綁定監(jiān)視器,單擊記錄集rsSubject前的“+”號,展開該記錄集。選中fSubject

21、Name字段,然后把光標放在上圖所示的表格中。3.      單擊數(shù)據(jù)綁定監(jiān)視器面板上的insert按鈕,這樣動態(tài)數(shù)據(jù)就添加到相應(yīng)的位置了。4.      按照上面的步驟向第2部分和第3部分動態(tài)內(nèi)容添加動態(tài)數(shù)據(jù)。把記錄集rsCurrentSubject中的fSubjectName字段和記錄集rsNews中的fTopic字段分別綁定到第2部分動態(tài)內(nèi)容處和第3部分動態(tài)內(nèi)容處。添加了動態(tài)數(shù)據(jù)的位置如圖所示的 rsCurrentSubject.fSubjectName和rsNews.fTopic 的兩個

22、占位符。向第2、3部分添加動態(tài)數(shù)據(jù)的位置以上4個步驟,就把動態(tài)數(shù)據(jù)綁定到了動態(tài)新聞頁news.jsp上了。19.2.3 完善新聞頁建立了記錄集、添加了動態(tài)數(shù)據(jù),還需要向頁面添加以下4種服務(wù)器行為使該頁完善起來。î        添加Repeat Region服務(wù)器行為 使第1部分的新聞類別全部顯示出來,使第3部分的新聞標題多條顯示或全部顯示出來。î        添加Go To Detail Page服務(wù)器行為 根據(jù)第1部分的類別標題在

23、第3部分顯示不同類別的新聞標題。從新聞標題可進入具體新聞內(nèi)容。î        添加Show Region服務(wù)器行為 使新聞頁news.jsp上的【沒有新聞】只在沒有新聞的情況下顯示,若有新聞就使之隱藏起來。下面步驟就是為該頁添加這些服務(wù)器行為。î        添加Go To Related Page服器行為 以便從【更多新聞】跳轉(zhuǎn)到具有更多新聞的頁。Ø      

24、   添加Repeat Region服務(wù)器行為1.      把光標放在第1部分動態(tài)數(shù)據(jù)位置上的表格中,用鼠標單擊文檔窗口下方的<td>標簽。選中表格中的單元格。2.      這個表格只有1行1列,選<td>標簽和<tr>標簽雖然看起來都一樣,但選<td>標簽可以使新聞類別標題顯示在一行上。在添加了Repeat Region服務(wù)器行為后,服務(wù)器端在執(zhí)行與此服務(wù)器行為對應(yīng)的程序時,就生成1個1行多列的表格HTML代碼,每個單元格

25、存放一個新聞類別標題。若選<tr>標簽,則生成1個1列多行的表格。3.      打開服務(wù)器行為監(jiān)視器。單擊監(jiān)視器面板上的“+”按鈕,從彈出的菜單上選擇Repeat- Region選項。4.      這時彈出對話框。在對話框的Recordset下拉列表中選擇與第1部分動態(tài)內(nèi)容對應(yīng)的記錄集rsSubject,在Show處選擇All Records單選框,即顯示所有新聞類別標題。5.      用鼠標點擊rsNews.fTopic占位符

26、選中這個動態(tài)文本。按照步驟2、3添加Repeat Region服務(wù)器行為。在設(shè)置Repeat Region服務(wù)器行為對話框時,在Recordset處選擇rsNews記錄集,在Show處設(shè)置成顯示5條記錄。如圖所示。Repeat Region服務(wù)器行為添加完畢。 Ø         添加Go To Detail Page服務(wù)器行為1.      選中rsSubject.fSubjectName占位符。2.   

27、0;  打開服務(wù)器行為監(jiān)視器。單擊監(jiān)視器面板上的“+”按鈕,從彈出的菜單上選擇Go To Detail Page選項。按圖所示的進行設(shè)置。Recordset下拉列表中選擇記錄集rsSubject;Column下拉列表中選擇fSubjectID字段。這時rsSubject.fSubjectName處多了一道下劃線,并且用不同顏色的顯示,表示是一個鏈接區(qū)域3.      同樣的方法,用鼠標單擊第3部分動態(tài)內(nèi)容處的rsNews.fTopic占位符。為其添加動態(tài)鏈接。其Go To Detail Page行為對話框的設(shè)置如圖所示。Records

28、et下拉列表中選擇記錄集rsNews;Column下拉列表中選擇字段fNewsID4.      該鏈接所指向的頁最好在新窗口中打開。所以,還要對其屬性設(shè)置一下。選中該動態(tài)文本。然后選擇Window菜單下的Properties選項,打開屬性浮動面板。單擊Target右邊的下三角選擇 _blank 選項。如圖所示。這樣設(shè)置后,在瀏覽器點擊此鏈接時,所鏈接的頁將在新窗口中出現(xiàn)。在news.jsp頁面上,可看到有一個【沒有新聞】的字樣。這個字樣應(yīng)該在沒有新聞的情況下出現(xiàn)。所以,需要對【沒有新聞】字樣添加Show Reigion中的一個服務(wù)器行為。5.

29、      選中該字樣。單擊服務(wù)器行為面板上的“+”按鈕,從彈出的菜單上選擇Show Region中的子項Show If Recordset Is Empty。6.      這時彈出設(shè)置該行為的對話框。設(shè)置如圖所示。對話框中的Recordset處一定選擇rsNews,因為該服務(wù)器行為是針對記錄集rsNews的news.jsp頁面上還有一個【更多新聞】的鏈接。從這個鏈接可以看到更多新聞。設(shè)置鏈接需要為其添加一個Go To Related Page服務(wù)器行為,即轉(zhuǎn)到相關(guān)頁。這個行為可以向所跳轉(zhuǎn)的頁

30、傳遞參數(shù)。從這個鏈接進入到相關(guān)頁時,必須把該頁的參數(shù)傳遞過去。使正瀏覽的動態(tài)新聞頁的內(nèi)容與所要轉(zhuǎn)到的更多新聞頁的列出的新聞內(nèi)容保持一致。也就是說,如果正在瀏覽的新聞標題屬于國內(nèi)新聞,那么跳轉(zhuǎn)到更多新聞頁時,所列出的新聞標題仍屬于國內(nèi)新聞。在窗性窗口中設(shè)置的鏈接參數(shù)是傳不過去的。所以,必須用此服務(wù)器行為。7.      打開服務(wù)器行為監(jiān)視器,單擊面板上的“+”按鈕,選擇Go To Related Page選項。8.      這時出現(xiàn)Go To Related Page行為對話框。按下圖所示進行設(shè)

31、置。Go To Related Page行為對話框9.      隱藏【更多新聞】字樣。在前面已設(shè)置了一次顯示5條新聞標題。如果某一類新聞總數(shù)少于5條或僅5條時,【更多新聞】字樣就可隱藏起來。10. 首先選中【更多新聞】字樣,轉(zhuǎn)到代碼窗口中,找到【更多新聞】字樣。對【更多新聞】鏈接加上條件語句修改后的代碼如下。<td bgcolor=#d7e6ff> <p align=right> <% if (rsNews_total > 5 ) %> <A HREF="more.jsp?<%=

32、 MM_keepURL %>">更多新聞</A> <% /*當新聞多于5條時顯示 "更多新聞"字樣*/ %> .</p> </td>用rsNews_total >5 作為if語句的條件,即新聞多于5條時顯示【更多新聞】鏈接,rsNews_total是在定義記錄rsNews時自動生成的變量,其值就是記錄的總數(shù)。動態(tài)新聞頁的服務(wù)器行為也就添加完了,該頁也就制作好了。保存所做的工作。19.2.4 制作顯示更多新聞頁如果經(jīng)常上網(wǎng)的話,就會經(jīng)常見到【更多】字樣的鏈接,以便顯示更多同類相關(guān)內(nèi)容,在本例中也使用了

33、一個【更多新聞】的鏈接,通過這個鏈接可以顯示所有同類新聞。這個鏈接的設(shè)置在上一節(jié)中已講述,現(xiàn)在用同樣的方法來添加一個此鏈接指向的頁more.jsp。制作顯示更多新聞頁more.jsp只需在新聞頁news.jsp的基礎(chǔ)上添加一組導(dǎo)航鏈接,通過這個鏈接可以查看所有相關(guān)新聞。more.jsp頁的制作與news.jsp頁的制作基本相同,只是比news.jsp頁多加了兩組動態(tài)導(dǎo)航鏈接。在news.jsp頁的基礎(chǔ)上,記錄集的建立、數(shù)據(jù)的綁定、服務(wù)行為的添加已做好,現(xiàn)在要做的就是為該頁添加兩組動態(tài)導(dǎo)航鏈接。Ø       

34、60; 添加兩組動態(tài)導(dǎo)航鏈接1.      在站點文件窗口中,打開more.jsp文件。2.      現(xiàn)在為該頁添加兩組動態(tài)導(dǎo)鏈接。將光標放至圖所示被選中的單元格中。向頁面添加動態(tài)導(dǎo)航鏈接3.      單擊Insert菜單,選擇Live ObjectRecordset Navigation Bar。4.      這時彈出Recordset Navigation Bar對話框,記錄集選擇rsN

35、ews,并選擇Images單選按鈕。如圖所示。5.      然后把光標放在該表格的第1個單元格內(nèi),選擇Insert菜單下的Live ObjectRecordset Navigation status選項。在彈出的對話框中注意選擇記錄集rsNews,如圖所示。把導(dǎo)航狀態(tài)修改成rsNews_first -rsNews_last /rsNews_total的樣子。如圖所示。頁面導(dǎo)航狀態(tài)也可以在新聞標題的下再添加一組導(dǎo)航按鈕及狀態(tài)條。在news.jsp頁的基礎(chǔ)上添加了兩組動態(tài)鏈接后,顯示更多新聞頁的more.jsp就設(shè)計好了。19.2.5 顯示新聞具

36、體內(nèi)容現(xiàn)在制作一個顯示新聞具體內(nèi)容的頁。這個頁的設(shè)計非常簡單,只需定義一個記錄集,綁定動態(tài)數(shù)據(jù)到頁面就可以了。Ø         顯示新聞具體內(nèi)容1.      打開站點文件窗口中的showNews.jsp頁。2.      打開數(shù)據(jù)綁定監(jiān)視器,建立一個記錄集。下圖所示的就是建立該頁記錄集的對話框,按照圖中所示設(shè)置參數(shù)。在SQL文本框中輸入的SQL語句如下。SELECT fContentFROM tNews

37、WHERE fNewsID = iCurNewsID本語句是個SELECT語句,所描述的是根據(jù)WHERE子句的規(guī)定從表tNews中選取記錄。WHERE規(guī)定了只選取字段fNewsID的值等于變量txtCurNewsID的值的記錄。在定義這個記錄集時用到了變量iCurNewsID,所以,還需要在Variables處的文本框中定義。在Name列處輸入變量名iCurNewsID;在Default Value列處輸入默認值1;在Run-time Value處輸入request.getParameter(“fNewsID”)。這樣該頁就根據(jù)news.jsp頁或者more.jsp頁傳過來的參數(shù)選取記錄集。定

38、義記錄集對話框3.      建立了記錄集之后,開始向頁面綁定動態(tài)數(shù)據(jù)。展開記錄集rsNewsDetail,選擇fContent字段,單擊數(shù)據(jù)綁定監(jiān)視器面板下面的Insert按鈕。這樣就把所需要的動態(tài)數(shù)據(jù)綁定到頁面上了。綁定該動態(tài)數(shù)據(jù),不需定位頁面中的位置。動態(tài)新聞頁及相關(guān)的頁已經(jīng)完成了。保存所有的工作。19.3 導(dǎo)航頁面新聞管理模塊中各頁面可通過一個導(dǎo)航頁面來調(diào)用。在管理新聞時,首先要調(diào)出導(dǎo)航頁面,從導(dǎo)航頁面進入管理新聞的各頁面。這個導(dǎo)航頁面的初始文件如圖所示。Ø      

39、;   制作menu.jsp頁1.      在站點文件窗口中打開menu.jsp文件。該頁面中的【管理密碼】與【管理類別】這兩個鏈接為靜態(tài)的,分別指向密碼管理頁PassMan.jsp和類別管理頁SubMan.jsp。初始文件中已添加好了。2.      在【新聞】下面的表格中添加管理新聞具體內(nèi)容的鏈接。這一項由多個鏈接組成,一個鏈接對應(yīng)一個新聞類別,因為管理模塊中有新聞類別的管理,管理類別可以添加類別或者刪除類別,所以這一組鏈接要設(shè)置成動態(tài)的,在正行修改新聞類別時,也會動態(tài)

40、變化。這個導(dǎo)航頁面采用了網(wǎng)頁框架??蚣艿淖筮吺蔷W(wǎng)頁文件menu.jsp,右邊是管理模塊的說明文件。在進入新聞管理系統(tǒng)時框架的左邊調(diào)用的一直是menu.jsp,右邊的框架首先調(diào)用welcome.htm文件進行說明一下新管理系統(tǒng)所管理的內(nèi)容。需要這義一個記錄集,所定義記錄集的對話框如圖所示。從表tNewsSubject中選取記錄集,因為表tNewsSubject中存放的是新聞類別。最好把取得的記錄設(shè)置成按fSubjectID的升序排序定義好記錄集后,首先把字段fSubjectName綁定到【新聞】下面的表格中。3.      添加Go To Det

41、ail Pages服務(wù)器行為。在服務(wù)器行為監(jiān)視器中打開該服務(wù)器行為對話框,在Detail Page處輸入文件名newsMan.jsp。一定把字段fSubjectID的值作為參數(shù)傳遞到newsMan.jsp頁。如圖所示。4.      選中表格,添加一個Repeat Region服務(wù)器行為。按圖所示進行設(shè)置。5.      保存文件。因為adm.html是個框架文件。需要選擇File菜單下的Save All Frames選項進行保存。19.4 密碼管理客戶端的計算機只能訪問到新聞發(fā)布系統(tǒng)的新聞內(nèi)容

42、,而對新聞的管理只能由新聞發(fā)布系統(tǒng)的管理員進行管理,不允許瀏覽者隨便修改或添加新聞的內(nèi)容。所以,新聞發(fā)布系統(tǒng)的管理模塊必須設(shè)置一定的權(quán)限??梢詾樾侣劰芾硐到y(tǒng)設(shè)計一個密碼管理頁,為管理員修改密碼用。Ø         制作密碼管理頁PassMan.jsp管理模塊的密碼存儲在服務(wù)器端相應(yīng)的數(shù)據(jù)表中。由于密碼只能有一個,本頁主要功能也就是修改密碼,添加Update record服務(wù)器行為可以實現(xiàn)其功能。再添加一個Validate Form行為檢驗窗體對象中是否輸入了密碼??砂匆韵虏襟E添加兩種行為。1. 

43、;     在站點文件窗口中打開PassMan.jsp文件。2.      在新密碼提交到服務(wù)器端前,還要在客戶端驗證一下Form中各窗體對象中是否輸入了新密碼,以及兩次輸入密碼是否相同。所以首先要添加一個Validate Form服務(wù)器行為。選中Form,選擇Window菜單下的Behaviors選項。打開Behaviors行為監(jiān)視器。PassMan.jsp3.      單擊面板上的“+”按鈕,從彈出的菜單上選擇Validate Form選項,打Val

44、idate Form行為對話框。按圖所示進行設(shè)置。4.      在添加了該行為后,還要對該行為所對應(yīng)的程序代碼進行修改。讓其具有判斷兩次輸入的密碼是否相同的功能。5.      在HTML代碼中找到與Validate Form行為對應(yīng)的程序。添加下面的代碼。 else if (test.charAt(0) = 'R') errors += '- '+nm+' is required.n' /手寫代碼,判斷兩次輸入的密碼是否相同/*手寫代碼開始 I

45、f (form1.txtNewPass.value! =form1.txtPassAgain.value)errors+='兩次密碼輸入不同!'Form1.txtNewPass.value=''Form1.txtPassAgain.value=''Form1.txtNewPass.focus (); /*手寫代碼結(jié)束if (errors) alert('The following error(s) occurred:n'+errors); Document. MM_returnValue = (errors = ''

46、;);/-></script>6.      修改數(shù)據(jù)表中的記錄,所修改的是數(shù)據(jù)表中當前的記錄。所以,首先要定義一個記錄集。定義記錄集時可按圖所示的進行設(shè)置。要從數(shù)據(jù)表tNewsAdmin中取得記錄。數(shù)據(jù)表中的記錄只有兩個字段,保存用戶名的fAdminName字段和保存密碼的fAdminPass字段,要定義成選取所有的字段(All)7.      定義了記錄集后,開始添加一個Update record服務(wù)器行為。打開Update record服務(wù)器行為對話框,按圖所示進行設(shè)置。

47、更新記錄也就是更新記錄中fAdminName字段的值與所定義的記錄集中當前記錄fAdminName字段的值相同的記錄,fAdminName字段中的值在表中必須是惟一的。定義記錄集的作用就是為更新記錄提供條件。8.      更新表中的記錄后,轉(zhuǎn)到subMan.jsp頁。在Form Elements處設(shè)置成fAdminPass字段的值修改為窗體txtNewsPass中的值。所修改記錄的fAdminPass字段的值應(yīng)該是當前記錄的fAdminPass字段的值19.5 新聞類別管理新聞類別管理包括對新聞類別的編輯、刪除和新建類別,管理員也就是通過這3

48、個操作來管理新聞類別的。19.5.1 主頁面類別管理的主頁面如圖所示。管理員通過該頁選擇某一個操作,編輯、刪除或新建類別,與這3個操作相關(guān)的頁分別是SubEdit.jsp頁、SubDel.jsp頁和SubAdd.jsp頁,而SubEdit頁和SubDel頁所進行的具體操作是根據(jù)由類別管理的主頁面?zhèn)鬟f過來的參數(shù)來判斷編輯或刪除表中的哪一條記錄。主頁面應(yīng)把所有新聞類別列出來。編輯管理類別的主頁面所進行的操作就是在給出的靜態(tài)頁面的基礎(chǔ)上定義記錄集和添加幾種服務(wù)器行為。1.      首先在站點文件窗口中打開SubMan.jsp文件。2. &

49、#160;    定義記錄集,向頁面綁定動態(tài)數(shù)據(jù)。定義記錄集就是從表tNewsSubject中取出記錄,動態(tài)地顯示所有新聞類別。定義記錄集時,選取字段的項設(shè)置成選取所有的字段,顯示記錄的順序設(shè)置成按fSubjectID字段的升序排序。記錄集的名最好取成rsSubject。設(shè)置好的記錄集對話框如圖所示。綁定動態(tài)數(shù)據(jù)。只需把記錄集rsSubject中的fSubjectName字段和fSubjectID字段分別綁定到SubMan.jsp頁面上表中【類別】列處和ID列處。3.      添加Go To Detail Pag

50、e服務(wù)器行為。把頁面中的編輯操作和刪除操作分別設(shè)置成動態(tài)鏈接,并向該鏈接所指向的頁傳遞參數(shù)。設(shè)置該動態(tài)鏈接需要添加Go To Detail Page服務(wù)器行為。為【編輯】操作設(shè)置動態(tài)鏈接時的Go To Detail Page服務(wù)器行為對話框如下圖所示。4.      為【刪除】操作設(shè)置動態(tài)鏈接時添加Go To Detail Page服務(wù)器行為,與【編輯】操作所不同的是Detail Page處的文本框中輸入subdel.jsp文件名。5.      添加Repeat Region服務(wù)器行為。添加R

51、epeat Region服務(wù)器行為,使新聞類別全部顯示出來。選中表格中的第1行。如圖所示。選中表格中的第1行6.      添加Repeat Region服務(wù)器行為時設(shè)置成顯示所有新聞類別。如圖所示。Repeat Region服務(wù)器行為對話框7.      為【新建類別】添加鏈接。該鏈接不需向所指向的頁傳遞參數(shù),在屬性浮動面板中就可以完成。設(shè)置該鏈接的屬性浮動面板如圖所示。8.      執(zhí)行了編輯、刪除或新建類別之后,應(yīng)該刷新menu.jsp頁

52、,即框架的左邊導(dǎo)航部分。單擊頁面下面的body標簽 ,選中頁面的所有內(nèi)容。單擊行為監(jiān)視器中的“+”按鈕,從彈出的菜單上選擇Call JavaScript選項。設(shè)置鏈接的屬性浮動面板9.      在彈出的對話框中輸入window.parent.left.location='menu.jsp'。如圖所示。Call JavaScript對話框類別管理的主頁面也就設(shè)置完了。19.5.2 編輯新聞類別編輯新聞類別頁SubEdit.jsp的主要功能就是修改相應(yīng)表中的某一個記錄。該頁添加了所需要的行為后的樣式如圖所示。SubEdit.jsp

53、文件Ø         制作“編輯新聞類別”頁面1.      添加Validate Form行為。添加Validate Form行為的目的是把修改后的類別在提交給服務(wù)器之前驗證窗體對象中是否有內(nèi)容。只有窗體對象中不為空,才能把修改后的結(jié)果提交到服務(wù)器端對相應(yīng)的數(shù)據(jù)表中的記錄進行修改。如圖所示進行添加該行為。2.      定義記錄集。編輯新聞類別就是對存儲新聞類別的數(shù)據(jù)表中的記錄進行修改,需要用Updat

54、e Record服務(wù)器行為,添加該服務(wù)器行為的前提要定義一個記錄集。按下圖所示進行定義記錄集。定義該記錄集需要設(shè)置取得記錄的過濾器,就是根據(jù)從管理類別的主頁面SubMan.jsp傳過來的參數(shù)進行選取記錄集。3.      定義完記錄后,分別把fSubjectID字段和fSubjectName字段綁定到Form中的類別ID和類別處。綁定后如圖所示。4.      添加Update Record服務(wù)器行為。設(shè)置Update Record服務(wù)器行為對話框如圖所示。Unique Key Column下拉

55、列表中選擇fSubjectID字段作為修改表tNewsSubject 中某一個記錄的依據(jù),fSubjectID字段的值在表tNewsSubject中是惟一的19.5.3 新建新聞類別新建新聞類別在服務(wù)器端所進行的操作就是向表tNewsSubject中插入一條記錄。所以完成該頁需要添加2個行為:一個是用來在客戶端驗證窗體對象中是否有內(nèi)容的Validate Form行為;一個就是用來向表tNewsSubject中插入記錄的Insert Record服務(wù)器行為。樣式如圖所示。設(shè)計好的SubAdd.jsp文件1.      按下圖所示進行添加Valid

56、ate Form行為。 注意把用來輸入新聞類型編號的窗體對象設(shè)置為數(shù)值型(Number)2.      按下圖所示進行添加Insert Record 服務(wù)器行為。在設(shè)置該對話框時注意Form Elements處的數(shù)據(jù)類型要匹配,以及所插入記錄的數(shù)據(jù)表。Insert Record服務(wù)器行為對話框19.5.4 刪除新聞類別刪除新聞內(nèi)容在服務(wù)器端所進行的操作就是刪除相應(yīng)數(shù)據(jù)表中的某些記錄。該文件在執(zhí)行時是不可見的。所完成該頁需要定義一個Prepared完成對數(shù)據(jù)庫的刪除操作。1.      新建一個文

57、檔窗口,以Subdel.jsp保存該文件。2.      定義Prepared。打開服務(wù)器行為監(jiān)視器,單擊面板上的“+”按鈕,從彈出的菜單中選擇Prepared(Insert,Update,Delete)選項,打開定義Prepared對話框。按圖所示進行定義。在SQL處輸入的語句如下。DELETE FROM tNewsSubject WHERE fSubjectID = iSubID 這個語句描述的是根據(jù)WHERE子句的規(guī)定來刪除表tNewsSubject中的記錄,而變量iSubID的值是從類別管理的主頁面中傳過來的。當然,還需要在V

58、ariables處定義iSubID變量。在Name處輸入iSubID,在Run-time Value處輸入request.getParameter(“fSubjectID”)。3.      最后轉(zhuǎn)到代碼窗口中,在頁面的最后加上一條語句:response.sendRedirect("subMan.jsp");使之執(zhí)行操作后轉(zhuǎn)到類別管理頁。如下。<%ConnPreDel.close();response.sendRedirect("subMan.jsp");%>19.6 在線更新新聞發(fā)布系統(tǒng)的內(nèi)

59、容每天都要更新,在線更新主要是新聞的內(nèi)容進行更新。更新的具體操作就是編輯新聞、刪除新聞和添加新聞。在線更新所對應(yīng)的網(wǎng)頁文件包括新聞管理頁newsMan.jsp、添加新聞頁newsAdd.jsp和刪除新聞頁newsDel.jsp。newsMan.jsp頁在瀏覽器中瀏覽的樣式如圖所示。從圖中可看出,newsMan.jsp頁的頂部顯示當前新聞內(nèi)容的類別,新聞類別的下面就是當前新聞類別的標題,從新聞標題右面的操作項可以對新聞具體內(nèi)容的刪除或添加,下方的文本框就是對某一新聞標題所對應(yīng)的具體內(nèi)容進行編輯。為了對本頁更清晰地講解,把新聞內(nèi)容管理頁NewsMan.jsp分成3部分講述,顯示當前新聞標題、顯示當

60、前新聞內(nèi)容和編輯新聞內(nèi)容。新聞內(nèi)容管理頁面19.6.1 顯示當前新聞類別1.      首先在站點文件窗口中打開沒有添加動態(tài)數(shù)據(jù)和行為的newsMan.jsp文件。2.      NewsMan.jsp頁對應(yīng)的新聞類別標題要能根據(jù)所選的新聞類型動態(tài)地顯示。需要為這一部分定義一個記錄集,記錄集根據(jù)從menu.jsp頁傳過來的參數(shù)進行選取記錄。設(shè)置定義記錄集的對話框如圖所示。在SQL處輸入的語句如下:SELECT fSubjectName, fSubjectIDFROM tNewsSubjectWH

61、ERE fSubjectID = iSubjectID該語句的功能是選取表tNewsSubject中的fSubjectName字段和 fSubjectID字段,并且只選取字段fSubjectID的值等于變量iSubjectID的值的記錄。另外還需要在Variables處定義變量iSubjectID并賦初值,在Name處輸入變量名iSubjectID,在Default Value處輸入1作為該變量的初值,在Run-time Value處輸入request.getParameter("fSubjectID")取得從上一頁傳過來的標記新聞類別的參數(shù),作為該語句運行時的值。3.&#

62、160;     定義好記錄集后,把記錄集rsCurSubject中的fSubjectName字段綁定到頁面【類別】項中。如圖所示。向【類別】處綁定動態(tài)數(shù)據(jù)19.6.2 顯示當前新聞標題顯示當前新聞標題就是根據(jù)在menu.jsp頁所選的新聞類別,向NewsMan.jsp頁傳遞參數(shù),顯示當前用戶所選擇的新聞類別的標題。而這部分動態(tài)內(nèi)容所對應(yīng)的記錄集就是根據(jù)這個參數(shù)取得的。根據(jù)新聞標題可以編輯相應(yīng)的具體內(nèi)容。所以,需要為這一部分添加一個Go To Detail Page服務(wù)器行為。要同時顯示多條新聞標題,需要添加Repeat Region服務(wù)器行為。如果沒有

63、某一類型的新聞,則新聞標題不顯示,可以添加一種Show Region服務(wù)器行為實現(xiàn)此功能。如果不顯示新聞標題,則顯示【沒有新聞!添加新聞】,并且【添加新聞】設(shè)置為動態(tài)鏈接。還要把【添加】和【刪除】字樣分別設(shè)置為動態(tài)鏈接。在新聞標題這一部分,有兩組動態(tài)導(dǎo)航鏈接,從這兩組導(dǎo)航鏈接可以查看當前類型的所有新聞??梢杂脭U展的服務(wù)器行為現(xiàn)實這組動態(tài)鏈接。Ø         制作“顯示當前新聞標題”頁面1.      首先為這部分動態(tài)內(nèi)容建立記錄集。建立記錄集的對話框如

64、圖所示。定義該記錄集時注意從表tNews中選取數(shù)據(jù)。只需要選取 fNewsID、fTopic和fDate三個字段。fNewsID字段保存的是表中新聞的編號,它惟一標識一條新聞;fTopic保存的是新聞的標題,fDate保存是新建新聞的日期。Variables中定義變量iSubjectID并賦初值:Name:iSubjectID;Default Value:1;Run-time Value:request.getParameter("fSubjectID")取得從上一頁傳過來的標記新聞類別參數(shù),作為運行時的值在SQL輸入的語句如下:SELECT fNewsID, fTopic

65、, fDateFROM tNewsWHERE fSubjectID = iSubjectIDORDER BY fDate DESC這個語句的功能與建立記錄集rsCurSubject時輸入的語句功能相似,只是語句的最后多加了一個ORDER BY fDate DESC子句,這個子句的功能就是按日期的倒序排列從表中取得的記錄,從頁面的內(nèi)容上說就是先列出最新的新聞標題。2.      向頁面綁定動態(tài)數(shù)據(jù)。把fTopic字段和fDate字段分別綁定到顯示新聞類別的下面表格標題處和日期處。3.      為

66、新聞標題添加Go To Detail Page服務(wù)器行為。選中rsNewsResult.fTopic 在服務(wù)器行為監(jiān)視器中打開Go To Detail Page服務(wù)器行為對話框。如圖所示。鏈接到newsMan.jsp頁的同時,把rsNewsResult記錄集當前記錄的fNewsID字段的值作為參數(shù)fNewsID的值傳遞過去。另外,newsMan.jsp頁在運行時需要一個fSubjectID參數(shù)來標明當前新聞類別,所以把URL parameters復(fù)選框打勾,以傳遞當前頁面的fSubjectID參數(shù)到下一個頁面。實際上,當前頁面是newsMan.jsp,下一個頁面也是newsMan.jsp,它是

67、一個結(jié)果頁和細節(jié)頁在一個頁上的頁面。如果不把URL parameters復(fù)選框打勾,下一個newsMan.jsp頁面就會“忘掉”fSubjectID這個URL參數(shù),造成當前新聞類別顯示不正確4.      添加Go To Detail Page服務(wù)器行為時生成的代碼出現(xiàn)了一個bug。下面我們來修正Ultradev 4的這個bug。為新聞標題添加Go To Detail Page服務(wù)器行為,可以通過該鏈接把相應(yīng)新聞標題所指向的新聞具體內(nèi)容顯示在本頁下面的編輯區(qū)進行編輯,但只能通過新聞標題編輯一條新聞,若通過該鏈接再次編輯新聞的時候,就會出錯。因為

68、每次點擊新聞標題鏈接,需要向編輯區(qū)傳遞一個URL參數(shù),并且這個參數(shù)會被記住,所以當再次點擊新聞標題處鏈接的時侯,URL參數(shù)就會多出一個fNewsID參數(shù)。形如:newsMan.jsp?fNewsID=27&offset=0&fNewsID=33,造成語法錯誤。5.      轉(zhuǎn)到代碼窗口中,查找找到變量MM_removeList,把變量MM_removeList處的語句:String MM_removeList = "index", MM_paramName ;修改成語句: String MM_removeL

69、ist = "index","fNewsID" ,MM_paramName ;即在原語句處多加了fNewsID字符串,這樣就可以去掉以前URL參數(shù)。6.      為【添加】字樣設(shè)置動態(tài)鏈接。從【添加】鏈接進入到添加頁時,所顯示的新聞類別應(yīng)與當前新聞管理頁中的新聞類別相同。所以需要把從新聞管理頁上一頁即menu.jsp頁傳過來的參數(shù)(這個參數(shù)也就是標記新聞類別的字段fSubjectID的值)傳遞到添加新聞頁。那么設(shè)置這個鏈接需要用Go To Related Page服務(wù)器行為。7.      先選中【添加】字樣,在服務(wù)器行為監(jiān)視器中打開Go To Related Page服務(wù)器行為對話框。在Related Page處輸入newsAdd.jsp文件名,注意選中URL Parameters處的復(fù)選框8.      為【刪除】字樣設(shè)置動態(tài)鏈接?!緞h除】鏈接所指

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論