版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第19章 新聞發(fā)布系統(tǒng)教學(xué)要求î 學(xué)會(huì)分析設(shè)計(jì)一個(gè)較復(fù)雜的新聞發(fā)布系統(tǒng)î 學(xué)會(huì)制作較復(fù)雜的動(dòng)態(tài)新聞頁(yè)î 學(xué)會(huì)設(shè)計(jì)動(dòng)態(tài)新聞的管理模塊î 領(lǐng)會(huì)Go To Related Page的用法î
2、0; 能夠綜合應(yīng)用Ultradev 4設(shè)計(jì)一個(gè)較復(fù)雜的網(wǎng)站19.1 分析新聞發(fā)布系統(tǒng)分兩大功能模塊:供所有用戶查看的動(dòng)態(tài)新聞顯示模塊和只供管理員進(jìn)行管理新聞及相關(guān)內(nèi)容的新聞管理模塊,也就是用戶界面和管理界面。19.1.1 用戶界面分析用戶界面所包含的文件î news.jsp 該頁(yè)是查看新聞的主頁(yè)面。包括新聞?lì)悇e、新聞標(biāo)題等內(nèi)容。如圖所示的是制作好的news.jsp頁(yè)在瀏覽器中的樣子。動(dòng)態(tài)新聞頁(yè)î &
3、#160; more.jsp 該頁(yè)用來顯示所有新聞內(nèi)容。在news.jsp有一個(gè)【更多新聞】鏈接,該鏈接就是指向該頁(yè)的。î ShowNews.jsp 該頁(yè)用來顯示新聞具體內(nèi)容。news.jsp中的新聞標(biāo)題就是鏈接到該頁(yè)的。î Buttom.htm和head.htm 這兩個(gè)頁(yè)是供news.jsp和more.jsp嵌入用的,這樣可以達(dá)到定制用戶界面的頁(yè)首和頁(yè)尾的功能。相關(guān)數(shù)據(jù)表î
4、 表tNewsSubjectID表tNewsSubject 用來存儲(chǔ)新聞?lì)悇e。表中的每條記錄有兩個(gè)字段:fSubjectName字段,用來保存新聞?lì)悇e;fSubjectID字段,用來保存標(biāo)記新聞?lì)悇e的標(biāo)號(hào),這個(gè)標(biāo)號(hào)在表中是惟一的。如右圖所示。î 表tNews 用來存儲(chǔ)新聞的具體內(nèi)容。表中字段fNewsID保存的是每條記錄的編號(hào),這個(gè)編號(hào)惟一標(biāo)識(shí)一條新聞。字段fTopic保存著新聞標(biāo)題,字段fContent保存著新聞的具
5、體內(nèi)容,字段fDate保存著錄入新聞時(shí)的日期,字段fAuthor保存著新聞的作者,字段fKeyWords保存著查找新聞的所需要的關(guān)鍵字,字段fSubjectID保存著標(biāo)記新聞?lì)悇e的標(biāo)號(hào),這個(gè)標(biāo)號(hào)在這個(gè)表中不是惟一的。如圖所示。表tNews19.1.2 管理界面分析新聞管理系統(tǒng)結(jié)構(gòu)新聞管理系統(tǒng)可分為密碼管理、類別管理和新聞?lì)悇e管理3部分。這3個(gè)功能模塊通過一個(gè)menu.jsp頁(yè)聯(lián)系起來。 與類別管理相關(guān)的文件這個(gè)功能模塊包括以下4個(gè)網(wǎng)頁(yè)文件。î subMan.jsp 通過該頁(yè)可以完成對(duì)管理類別
6、的編輯、添加和刪除的操作。î SubDel.jsp 刪除新聞?lì)悇e。î SubEdit.jsp 編輯現(xiàn)有的新聞?lì)悇e。î SubAdd.jsp 添加新聞?lì)悇e。與新聞內(nèi)容管理相關(guān)的文件這個(gè)功能模塊包括以下3個(gè)網(wǎng)頁(yè)文件。î News
7、Man.jsp 通過該頁(yè)可以完成對(duì)新聞內(nèi)容的編輯、添加和刪除的操作。編輯新聞內(nèi)容的操作在NewsMan.jsp頁(yè)中完成。î NewsDel.jsp 刪除新聞內(nèi)容。î NewsAdd.jsp 添加新聞內(nèi)容。其他相關(guān)文件î Menu.jsp 通過該文件來統(tǒng)一管理新聞系統(tǒng)的各項(xiàng)操作,即從該頁(yè)可進(jìn)入對(duì)管理系統(tǒng)的密碼、新聞的類
8、別和新聞的內(nèi)容的操作。在瀏覽器中如圖所示。menu.jsp頁(yè)î Adm.htm 這是“管理”部分的主頁(yè)面,是一個(gè)網(wǎng)頁(yè)框架文件,它由左右兩個(gè)框架組成,左邊的框架用來顯示menu.jsp頁(yè),右邊的框架用來顯示與新聞?lì)悇e管理相關(guān)的頁(yè)和顯示與新聞內(nèi)容管理相關(guān)的頁(yè)。利用網(wǎng)頁(yè)框架,使管理員管理新聞系統(tǒng)的各個(gè)內(nèi)容更方便,操作簡(jiǎn)單。î Login.jsp 登錄頁(yè),這是設(shè)置安全機(jī)制所用到的。進(jìn)入新聞管理系統(tǒng)前必須登錄。
9、8; Sorry.htm 登錄失敗時(shí)轉(zhuǎn)向該頁(yè)。î Welcome.htm 首次進(jìn)入新聞管理系統(tǒng)時(shí)在Adm.htm頁(yè)右邊的框中調(diào)用該頁(yè)。說明新聞管理系統(tǒng)的功能。î PassMan.jsp 對(duì)本系統(tǒng)的密碼管理。完成這個(gè)新聞管理系統(tǒng)主要是對(duì)這組文件的制做,以及合理的安排這些文件。相關(guān)數(shù)據(jù)表新聞管理模塊用到了3個(gè)數(shù)據(jù)表。表tNewsS
10、ubject和表tNews,這兩個(gè)表已介紹過。還有一個(gè)用于存儲(chǔ)用戶名和密碼的表tNewsAdmin。如圖所示。表tNewsAdmin表tNewsAdmin中字段fAdminName存儲(chǔ)登錄管理系統(tǒng)時(shí)用的用戶名,字段fAdminPass存儲(chǔ)登錄管理系統(tǒng)時(shí)的密碼。對(duì)新聞管理的各個(gè)操作,也就是對(duì)服務(wù)器端這3個(gè)表的操作。19.2 制作動(dòng)態(tài)新聞頁(yè)動(dòng)態(tài)新聞頁(yè)news.jsp的制作,使之能夠動(dòng)態(tài)地顯示當(dāng)日以及最近幾天的新聞。由于新聞的標(biāo)題和內(nèi)容都存儲(chǔ)在服務(wù)器端相應(yīng)的數(shù)據(jù)表中了,更新或者添加新聞的操作是對(duì)服務(wù)器端相應(yīng)數(shù)據(jù)表中的記錄進(jìn)行更新,或者向數(shù)據(jù)表中插入記錄。所以,該頁(yè)的制作主要是定義記錄集,向頁(yè)面添加動(dòng)
11、態(tài)內(nèi)容,添加服務(wù)器行為。這個(gè)頁(yè)動(dòng)態(tài)內(nèi)容分為3部分。î 第1部分是能夠動(dòng)態(tài)地顯示所有新聞的類別標(biāo)題,也就是news.jsp中的鏈接【國(guó)際新聞】、【國(guó)內(nèi)新聞】、【體育新聞】等類別標(biāo)題。這一部分動(dòng)態(tài)內(nèi)容就是對(duì)新聞進(jìn)行分類。î 第2部分是當(dāng)前列出新聞的類別標(biāo)題。也就是news.jsp中黑色加粗的【國(guó)際新聞】。這一部分隨著所選新聞?lì)悇e變化而變化。它的作用只是標(biāo)記當(dāng)前列出的新聞標(biāo)題的類別。î
12、0; 第3部分也就是news.jsp下半部分所示的新聞標(biāo)題了。這一部分列出的新聞標(biāo)題屬于當(dāng)前所選的新聞?lì)悇e,從這一部分可以閱讀相關(guān)新聞的詳細(xì)內(nèi)容。這3項(xiàng)需要分別建立記錄集,因?yàn)樗鼈冃枰膭?dòng)態(tài)數(shù)據(jù)不同。但建立的這3個(gè)記錄集還必須通過一個(gè)變量傳遞參數(shù),以便使這3項(xiàng)顯示的內(nèi)容一致。可通過以下步驟來完成該新聞頁(yè)。1. 建立記錄集。2. 向頁(yè)面綁定動(dòng)態(tài)數(shù)據(jù)。3. 添加
13、服務(wù)器行為。其實(shí)該頁(yè)還包含一個(gè)新聞搜索器,在第10章章中有詳述,在此不做介紹。下面來制作這個(gè)動(dòng)態(tài)新聞頁(yè)news.jsp。19.2.1 為動(dòng)態(tài)新聞建立記錄集為該頁(yè)添加動(dòng)態(tài)內(nèi)容的首先要建立相應(yīng)的記錄集。1. 在站點(diǎn)文件窗口中打開news.jsp文件。該頁(yè)的靜態(tài)部分已經(jīng)設(shè)計(jì)好了。如圖所示。新聞頁(yè)的初始文件2. 打開數(shù)據(jù)綁定監(jiān)視器,打開定義記錄集對(duì)話框,建立一個(gè)取得新聞?lì)悇e的記錄集。單擊監(jiān)視器面板上的“+”按鈕,從彈出的菜單上選擇Recordset(Query)選項(xiàng),打開定義記錄集對(duì)
14、話框,這時(shí)如果出現(xiàn)Advanced Recordset對(duì)話框,單擊Simple按鈕,轉(zhuǎn)到Simple Recordset對(duì)話框。î 在記錄集對(duì)話框的Name文本框中輸入rsSubject。î 在Connection下拉列表中選擇connBHP。î Table下拉列表框選擇存儲(chǔ)新聞?lì)悇e的數(shù)據(jù)表tNewsSubject。
15、表tNewsSubject只有兩個(gè)字段:字段fSubjectName和字段fSubjectID。這兩個(gè)字段分別保存的是新聞?lì)悇e和新聞?lì)悇e編號(hào),而建立的這個(gè)記錄集需要從數(shù)據(jù)表tNewsSubject中選取這兩個(gè)字段,字段fSubjectName中的數(shù)據(jù)作為第1部分的動(dòng)態(tài)內(nèi)容,字段fSubjectID中的數(shù)據(jù)作為動(dòng)態(tài)參數(shù)。î 在Column處選擇All單選項(xiàng)。î 在Sort處設(shè)置成按fSubjectID字段的升序
16、排列。3. 單擊OK按鈕保存設(shè)置。這樣第1個(gè)記錄集已定義好了。設(shè)置好的記錄集對(duì)話框如圖所示。4. 為第2部分動(dòng)態(tài)內(nèi)容定義記錄集。打開定義記錄集對(duì)話框,如出現(xiàn) Simple Recordset對(duì)話框,單擊Advanced按鈕,轉(zhuǎn)到Advanced Recordset對(duì)話框。設(shè)置如圖所示。在SQL文本框中輸入下面的SQL語(yǔ)句:SELECT fSubjectNameFROM tNewsSubjectWHERE fSubjectID =iNewsID這是一條SELECT語(yǔ)句。描述的仍
17、是從表tNewsSubject中選取記錄中的字段fSubjectName,最后的WHERE子句規(guī)定了只選取字段fSubjectID的值等于變量strNewsID中的值的記錄。變量iNewsID中的值是數(shù)值型,這個(gè)數(shù)值標(biāo)記著當(dāng)前列出的新聞?lì)悇e,這樣就把當(dāng)前新聞?lì)悇e選取出來了。由于用到了變量iNewsID,所以必須在Variables處定義并賦初值。在Name列輸入變量名strNewsID,在Default Value列處輸入1作為該變量的默認(rèn)值,即第2部分動(dòng)態(tài)內(nèi)容在默認(rèn)情況下列出標(biāo)記為1的新聞?lì)愋秃蚏un-Time Value列處的運(yùn)行時(shí)值request.getParameter(“iSubje
18、ctID”)。第2、第3部分的動(dòng)態(tài)內(nèi)容所對(duì)應(yīng)的記錄集就是通過參數(shù)iSubjectID傳遞動(dòng)態(tài)數(shù)據(jù)作為選取記錄的條件,這樣使得3部分的動(dòng)態(tài)內(nèi)容一致。5. 為第3部分動(dòng)態(tài)內(nèi)容定義記錄集。打開高級(jí)記錄集對(duì)話框。設(shè)置如圖所示。在SQL處輸入SQL語(yǔ)句如下:SELECT fTopic, fNewsIDFROM tNewsWHERE fSubjectID = iCurrentSubIDORDER BY fDate DESC這個(gè)SELECT語(yǔ)句是從數(shù)據(jù)表tNews中選取記錄。WHERE子句規(guī)定了只選取字段fSubjectID值等于iCurrentS
19、ubID變量值的記錄,并且只取記錄的fTopic字段和fNewsID字段。子句ORDER BY fDate DESC規(guī)定了記錄按字段fDate中的值(也就是日期)從大到小排序,從動(dòng)態(tài)新聞頁(yè)的內(nèi)容上說就是先顯示最近發(fā)布的消息。DESC規(guī)定按字段值的降序排序,ASC規(guī)定按字段值的升序排序。上面語(yǔ)句仍用到了變量,所以必須在Variables處定義初值。在Name列輸入變量名iCurrentSubID,在Default Value列處輸入1作為該變量的默認(rèn)值,即第3部分動(dòng)態(tài)內(nèi)容在默認(rèn)情況下列出標(biāo)記為1的記錄,和Run-Time Value列處的運(yùn)行時(shí)值request.getParameter(“iSu
20、bjectID”) 。向這個(gè)變量傳遞參數(shù)的值同向第2部分動(dòng)態(tài)內(nèi)容傳遞參數(shù)的值相同。19.2.2 使新聞動(dòng)態(tài)顯示及時(shí)性是新聞的要素之一,必須使新聞動(dòng)態(tài)顯示在頁(yè)面上。所以,建立了記錄集后,開始向頁(yè)面綁定動(dòng)態(tài)數(shù)據(jù)。這一操作很簡(jiǎn)單,添加步驟如下。1. 向第1部分動(dòng)態(tài)內(nèi)容添加動(dòng)態(tài)數(shù)據(jù)。添加動(dòng)態(tài)數(shù)據(jù)的位置如圖所示的兩條粗線之間的表格中,也就是圖中光標(biāo)所在的位置。第1部分添加動(dòng)態(tài)數(shù)據(jù)的位置2. 打開數(shù)據(jù)綁定監(jiān)視器,單擊記錄集rsSubject前的“+”號(hào),展開該記錄集。選中fSubject
21、Name字段,然后把光標(biāo)放在上圖所示的表格中。3. 單擊數(shù)據(jù)綁定監(jiān)視器面板上的insert按鈕,這樣動(dòng)態(tài)數(shù)據(jù)就添加到相應(yīng)的位置了。4. 按照上面的步驟向第2部分和第3部分動(dòng)態(tài)內(nèi)容添加動(dòng)態(tài)數(shù)據(jù)。把記錄集rsCurrentSubject中的fSubjectName字段和記錄集rsNews中的fTopic字段分別綁定到第2部分動(dòng)態(tài)內(nèi)容處和第3部分動(dòng)態(tài)內(nèi)容處。添加了動(dòng)態(tài)數(shù)據(jù)的位置如圖所示的 rsCurrentSubject.fSubjectName和rsNews.fTopic 的兩個(gè)
22、占位符。向第2、3部分添加動(dòng)態(tài)數(shù)據(jù)的位置以上4個(gè)步驟,就把動(dòng)態(tài)數(shù)據(jù)綁定到了動(dòng)態(tài)新聞頁(yè)news.jsp上了。19.2.3 完善新聞頁(yè)建立了記錄集、添加了動(dòng)態(tài)數(shù)據(jù),還需要向頁(yè)面添加以下4種服務(wù)器行為使該頁(yè)完善起來。î 添加Repeat Region服務(wù)器行為 使第1部分的新聞?lì)悇e全部顯示出來,使第3部分的新聞標(biāo)題多條顯示或全部顯示出來。î 添加Go To Detail Page服務(wù)器行為 根據(jù)第1部分的類別標(biāo)題在
23、第3部分顯示不同類別的新聞標(biāo)題。從新聞標(biāo)題可進(jìn)入具體新聞內(nèi)容。î 添加Show Region服務(wù)器行為 使新聞頁(yè)news.jsp上的【沒有新聞】只在沒有新聞的情況下顯示,若有新聞就使之隱藏起來。下面步驟就是為該頁(yè)添加這些服務(wù)器行為。î 添加Go To Related Page服器行為 以便從【更多新聞】跳轉(zhuǎn)到具有更多新聞的頁(yè)。Ø
24、 添加Repeat Region服務(wù)器行為1. 把光標(biāo)放在第1部分動(dòng)態(tài)數(shù)據(jù)位置上的表格中,用鼠標(biāo)單擊文檔窗口下方的<td>標(biāo)簽。選中表格中的單元格。2. 這個(gè)表格只有1行1列,選<td>標(biāo)簽和<tr>標(biāo)簽雖然看起來都一樣,但選<td>標(biāo)簽可以使新聞?lì)悇e標(biāo)題顯示在一行上。在添加了Repeat Region服務(wù)器行為后,服務(wù)器端在執(zhí)行與此服務(wù)器行為對(duì)應(yīng)的程序時(shí),就生成1個(gè)1行多列的表格HTML代碼,每個(gè)單元格
25、存放一個(gè)新聞?lì)悇e標(biāo)題。若選<tr>標(biāo)簽,則生成1個(gè)1列多行的表格。3. 打開服務(wù)器行為監(jiān)視器。單擊監(jiān)視器面板上的“+”按鈕,從彈出的菜單上選擇Repeat- Region選項(xiàng)。4. 這時(shí)彈出對(duì)話框。在對(duì)話框的Recordset下拉列表中選擇與第1部分動(dòng)態(tài)內(nèi)容對(duì)應(yīng)的記錄集rsSubject,在Show處選擇All Records單選框,即顯示所有新聞?lì)悇e標(biāo)題。5. 用鼠標(biāo)點(diǎn)擊rsNews.fTopic占位符
26、選中這個(gè)動(dòng)態(tài)文本。按照步驟2、3添加Repeat Region服務(wù)器行為。在設(shè)置Repeat Region服務(wù)器行為對(duì)話框時(shí),在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選項(xiàng)。按圖所示的進(jìn)行設(shè)置。Recordset下拉列表中選擇記錄集rsSubject;Column下拉列表中選擇fSubjectID字段。這時(shí)rsSubject.fSubjectName處多了一道下劃線,并且用不同顏色的顯示,表示是一個(gè)鏈接區(qū)域3. 同樣的方法,用鼠標(biāo)單擊第3部分動(dòng)態(tài)內(nèi)容處的rsNews.fTopic占位符。為其添加動(dòng)態(tài)鏈接。其Go To Detail Page行為對(duì)話框的設(shè)置如圖所示。Records
28、et下拉列表中選擇記錄集rsNews;Column下拉列表中選擇字段fNewsID4. 該鏈接所指向的頁(yè)最好在新窗口中打開。所以,還要對(duì)其屬性設(shè)置一下。選中該動(dòng)態(tài)文本。然后選擇Window菜單下的Properties選項(xiàng),打開屬性浮動(dòng)面板。單擊Target右邊的下三角選擇 _blank 選項(xiàng)。如圖所示。這樣設(shè)置后,在瀏覽器點(diǎn)擊此鏈接時(shí),所鏈接的頁(yè)將在新窗口中出現(xiàn)。在news.jsp頁(yè)面上,可看到有一個(gè)【沒有新聞】的字樣。這個(gè)字樣應(yīng)該在沒有新聞的情況下出現(xiàn)。所以,需要對(duì)【沒有新聞】字樣添加Show Reigion中的一個(gè)服務(wù)器行為。5.
29、 選中該字樣。單擊服務(wù)器行為面板上的“+”按鈕,從彈出的菜單上選擇Show Region中的子項(xiàng)Show If Recordset Is Empty。6. 這時(shí)彈出設(shè)置該行為的對(duì)話框。設(shè)置如圖所示。對(duì)話框中的Recordset處一定選擇rsNews,因?yàn)樵摲?wù)器行為是針對(duì)記錄集rsNews的news.jsp頁(yè)面上還有一個(gè)【更多新聞】的鏈接。從這個(gè)鏈接可以看到更多新聞。設(shè)置鏈接需要為其添加一個(gè)Go To Related Page服務(wù)器行為,即轉(zhuǎn)到相關(guān)頁(yè)。這個(gè)行為可以向所跳轉(zhuǎn)的頁(yè)
30、傳遞參數(shù)。從這個(gè)鏈接進(jìn)入到相關(guān)頁(yè)時(shí),必須把該頁(yè)的參數(shù)傳遞過去。使正瀏覽的動(dòng)態(tài)新聞頁(yè)的內(nèi)容與所要轉(zhuǎn)到的更多新聞頁(yè)的列出的新聞內(nèi)容保持一致。也就是說,如果正在瀏覽的新聞標(biāo)題屬于國(guó)內(nèi)新聞,那么跳轉(zhuǎn)到更多新聞頁(yè)時(shí),所列出的新聞標(biāo)題仍屬于國(guó)內(nèi)新聞。在窗性窗口中設(shè)置的鏈接參數(shù)是傳不過去的。所以,必須用此服務(wù)器行為。7. 打開服務(wù)器行為監(jiān)視器,單擊面板上的“+”按鈕,選擇Go To Related Page選項(xiàng)。8. 這時(shí)出現(xiàn)Go To Related Page行為對(duì)話框。按下圖所示進(jìn)行設(shè)
31、置。Go To Related Page行為對(duì)話框9. 隱藏【更多新聞】字樣。在前面已設(shè)置了一次顯示5條新聞標(biāo)題。如果某一類新聞總數(shù)少于5條或僅5條時(shí),【更多新聞】字樣就可隱藏起來。10. 首先選中【更多新聞】字樣,轉(zhuǎn)到代碼窗口中,找到【更多新聞】字樣。對(duì)【更多新聞】鏈接加上條件語(yǔ)句修改后的代碼如下。<td bgcolor=#d7e6ff> <p align=right> <% if (rsNews_total > 5 ) %> <A HREF="more.jsp?<%=
32、 MM_keepURL %>">更多新聞</A> <% /*當(dāng)新聞多于5條時(shí)顯示 "更多新聞"字樣*/ %> .</p> </td>用rsNews_total >5 作為if語(yǔ)句的條件,即新聞多于5條時(shí)顯示【更多新聞】鏈接,rsNews_total是在定義記錄rsNews時(shí)自動(dòng)生成的變量,其值就是記錄的總數(shù)。動(dòng)態(tài)新聞頁(yè)的服務(wù)器行為也就添加完了,該頁(yè)也就制作好了。保存所做的工作。19.2.4 制作顯示更多新聞頁(yè)如果經(jīng)常上網(wǎng)的話,就會(huì)經(jīng)常見到【更多】字樣的鏈接,以便顯示更多同類相關(guān)內(nèi)容,在本例中也使用了
33、一個(gè)【更多新聞】的鏈接,通過這個(gè)鏈接可以顯示所有同類新聞。這個(gè)鏈接的設(shè)置在上一節(jié)中已講述,現(xiàn)在用同樣的方法來添加一個(gè)此鏈接指向的頁(yè)more.jsp。制作顯示更多新聞頁(yè)more.jsp只需在新聞頁(yè)news.jsp的基礎(chǔ)上添加一組導(dǎo)航鏈接,通過這個(gè)鏈接可以查看所有相關(guān)新聞。more.jsp頁(yè)的制作與news.jsp頁(yè)的制作基本相同,只是比news.jsp頁(yè)多加了兩組動(dòng)態(tài)導(dǎo)航鏈接。在news.jsp頁(yè)的基礎(chǔ)上,記錄集的建立、數(shù)據(jù)的綁定、服務(wù)行為的添加已做好,現(xiàn)在要做的就是為該頁(yè)添加兩組動(dòng)態(tài)導(dǎo)航鏈接。Ø
34、60; 添加兩組動(dòng)態(tài)導(dǎo)航鏈接1. 在站點(diǎn)文件窗口中,打開more.jsp文件。2. 現(xiàn)在為該頁(yè)添加兩組動(dòng)態(tài)導(dǎo)鏈接。將光標(biāo)放至圖所示被選中的單元格中。向頁(yè)面添加動(dòng)態(tài)導(dǎo)航鏈接3. 單擊Insert菜單,選擇Live ObjectRecordset Navigation Bar。4. 這時(shí)彈出Recordset Navigation Bar對(duì)話框,記錄集選擇rsN
35、ews,并選擇Images單選按鈕。如圖所示。5. 然后把光標(biāo)放在該表格的第1個(gè)單元格內(nèi),選擇Insert菜單下的Live ObjectRecordset Navigation status選項(xiàng)。在彈出的對(duì)話框中注意選擇記錄集rsNews,如圖所示。把導(dǎo)航狀態(tài)修改成rsNews_first -rsNews_last /rsNews_total的樣子。如圖所示。頁(yè)面導(dǎo)航狀態(tài)也可以在新聞標(biāo)題的下再添加一組導(dǎo)航按鈕及狀態(tài)條。在news.jsp頁(yè)的基礎(chǔ)上添加了兩組動(dòng)態(tài)鏈接后,顯示更多新聞頁(yè)的more.jsp就設(shè)計(jì)好了。19.2.5 顯示新聞具
36、體內(nèi)容現(xiàn)在制作一個(gè)顯示新聞具體內(nèi)容的頁(yè)。這個(gè)頁(yè)的設(shè)計(jì)非常簡(jiǎn)單,只需定義一個(gè)記錄集,綁定動(dòng)態(tài)數(shù)據(jù)到頁(yè)面就可以了。Ø 顯示新聞具體內(nèi)容1. 打開站點(diǎn)文件窗口中的showNews.jsp頁(yè)。2. 打開數(shù)據(jù)綁定監(jiān)視器,建立一個(gè)記錄集。下圖所示的就是建立該頁(yè)記錄集的對(duì)話框,按照?qǐng)D中所示設(shè)置參數(shù)。在SQL文本框中輸入的SQL語(yǔ)句如下。SELECT fContentFROM tNews
37、WHERE fNewsID = iCurNewsID本語(yǔ)句是個(gè)SELECT語(yǔ)句,所描述的是根據(jù)WHERE子句的規(guī)定從表tNews中選取記錄。WHERE規(guī)定了只選取字段fNewsID的值等于變量txtCurNewsID的值的記錄。在定義這個(gè)記錄集時(shí)用到了變量iCurNewsID,所以,還需要在Variables處的文本框中定義。在Name列處輸入變量名iCurNewsID;在Default Value列處輸入默認(rèn)值1;在Run-time Value處輸入request.getParameter(“fNewsID”)。這樣該頁(yè)就根據(jù)news.jsp頁(yè)或者more.jsp頁(yè)傳過來的參數(shù)選取記錄集。定
38、義記錄集對(duì)話框3. 建立了記錄集之后,開始向頁(yè)面綁定動(dòng)態(tài)數(shù)據(jù)。展開記錄集rsNewsDetail,選擇fContent字段,單擊數(shù)據(jù)綁定監(jiān)視器面板下面的Insert按鈕。這樣就把所需要的動(dòng)態(tài)數(shù)據(jù)綁定到頁(yè)面上了。綁定該動(dòng)態(tài)數(shù)據(jù),不需定位頁(yè)面中的位置。動(dòng)態(tài)新聞頁(yè)及相關(guān)的頁(yè)已經(jīng)完成了。保存所有的工作。19.3 導(dǎo)航頁(yè)面新聞管理模塊中各頁(yè)面可通過一個(gè)導(dǎo)航頁(yè)面來調(diào)用。在管理新聞時(shí),首先要調(diào)出導(dǎo)航頁(yè)面,從導(dǎo)航頁(yè)面進(jìn)入管理新聞的各頁(yè)面。這個(gè)導(dǎo)航頁(yè)面的初始文件如圖所示。Ø
39、; 制作menu.jsp頁(yè)1. 在站點(diǎn)文件窗口中打開menu.jsp文件。該頁(yè)面中的【管理密碼】與【管理類別】這兩個(gè)鏈接為靜態(tài)的,分別指向密碼管理頁(yè)P(yáng)assMan.jsp和類別管理頁(yè)SubMan.jsp。初始文件中已添加好了。2. 在【新聞】下面的表格中添加管理新聞具體內(nèi)容的鏈接。這一項(xiàng)由多個(gè)鏈接組成,一個(gè)鏈接對(duì)應(yīng)一個(gè)新聞?lì)悇e,因?yàn)楣芾砟K中有新聞?lì)悇e的管理,管理類別可以添加類別或者刪除類別,所以這一組鏈接要設(shè)置成動(dòng)態(tài)的,在正行修改新聞?lì)悇e時(shí),也會(huì)動(dòng)態(tài)
40、變化。這個(gè)導(dǎo)航頁(yè)面采用了網(wǎng)頁(yè)框架。框架的左邊是網(wǎng)頁(yè)文件menu.jsp,右邊是管理模塊的說明文件。在進(jìn)入新聞管理系統(tǒng)時(shí)框架的左邊調(diào)用的一直是menu.jsp,右邊的框架首先調(diào)用welcome.htm文件進(jìn)行說明一下新管理系統(tǒng)所管理的內(nèi)容。需要這義一個(gè)記錄集,所定義記錄集的對(duì)話框如圖所示。從表tNewsSubject中選取記錄集,因?yàn)楸韙NewsSubject中存放的是新聞?lì)悇e。最好把取得的記錄設(shè)置成按fSubjectID的升序排序定義好記錄集后,首先把字段fSubjectName綁定到【新聞】下面的表格中。3. 添加Go To Det
41、ail Pages服務(wù)器行為。在服務(wù)器行為監(jiān)視器中打開該服務(wù)器行為對(duì)話框,在Detail Page處輸入文件名newsMan.jsp。一定把字段fSubjectID的值作為參數(shù)傳遞到newsMan.jsp頁(yè)。如圖所示。4. 選中表格,添加一個(gè)Repeat Region服務(wù)器行為。按圖所示進(jìn)行設(shè)置。5. 保存文件。因?yàn)閍dm.html是個(gè)框架文件。需要選擇File菜單下的Save All Frames選項(xiàng)進(jìn)行保存。19.4 密碼管理客戶端的計(jì)算機(jī)只能訪問到新聞發(fā)布系統(tǒng)的新聞內(nèi)容
42、,而對(duì)新聞的管理只能由新聞發(fā)布系統(tǒng)的管理員進(jìn)行管理,不允許瀏覽者隨便修改或添加新聞的內(nèi)容。所以,新聞發(fā)布系統(tǒng)的管理模塊必須設(shè)置一定的權(quán)限??梢詾樾侣劰芾硐到y(tǒng)設(shè)計(jì)一個(gè)密碼管理頁(yè),為管理員修改密碼用。Ø 制作密碼管理頁(yè)P(yáng)assMan.jsp管理模塊的密碼存儲(chǔ)在服務(wù)器端相應(yīng)的數(shù)據(jù)表中。由于密碼只能有一個(gè),本頁(yè)主要功能也就是修改密碼,添加Update record服務(wù)器行為可以實(shí)現(xiàn)其功能。再添加一個(gè)Validate Form行為檢驗(yàn)窗體對(duì)象中是否輸入了密碼??砂匆韵虏襟E添加兩種行為。1.
43、; 在站點(diǎn)文件窗口中打開PassMan.jsp文件。2. 在新密碼提交到服務(wù)器端前,還要在客戶端驗(yàn)證一下Form中各窗體對(duì)象中是否輸入了新密碼,以及兩次輸入密碼是否相同。所以首先要添加一個(gè)Validate Form服務(wù)器行為。選中Form,選擇Window菜單下的Behaviors選項(xiàng)。打開Behaviors行為監(jiān)視器。PassMan.jsp3. 單擊面板上的“+”按鈕,從彈出的菜單上選擇Validate Form選項(xiàng),打Val
44、idate Form行為對(duì)話框。按圖所示進(jìn)行設(shè)置。4. 在添加了該行為后,還要對(duì)該行為所對(duì)應(yīng)的程序代碼進(jìn)行修改。讓其具有判斷兩次輸入的密碼是否相同的功能。5. 在HTML代碼中找到與Validate Form行為對(duì)應(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ù)表中當(dāng)前的記錄。所以,首先要定義一個(gè)記錄集。定義記錄集時(shí)可按圖所示的進(jìn)行設(shè)置。要從數(shù)據(jù)表tNewsAdmin中取得記錄。數(shù)據(jù)表中的記錄只有兩個(gè)字段,保存用戶名的fAdminName字段和保存密碼的fAdminPass字段,要定義成選取所有的字段(All)7. 定義了記錄集后,開始添加一個(gè)Update record服務(wù)器行為。打開Update record服務(wù)器行為對(duì)話框,按圖所示進(jìn)行設(shè)置。
47、更新記錄也就是更新記錄中fAdminName字段的值與所定義的記錄集中當(dāng)前記錄fAdminName字段的值相同的記錄,fAdminName字段中的值在表中必須是惟一的。定義記錄集的作用就是為更新記錄提供條件。8. 更新表中的記錄后,轉(zhuǎn)到subMan.jsp頁(yè)。在Form Elements處設(shè)置成fAdminPass字段的值修改為窗體txtNewsPass中的值。所修改記錄的fAdminPass字段的值應(yīng)該是當(dāng)前記錄的fAdminPass字段的值19.5 新聞?lì)悇e管理新聞?lì)悇e管理包括對(duì)新聞?lì)悇e的編輯、刪除和新建類別,管理員也就是通過這3
48、個(gè)操作來管理新聞?lì)悇e的。19.5.1 主頁(yè)面類別管理的主頁(yè)面如圖所示。管理員通過該頁(yè)選擇某一個(gè)操作,編輯、刪除或新建類別,與這3個(gè)操作相關(guān)的頁(yè)分別是SubEdit.jsp頁(yè)、SubDel.jsp頁(yè)和SubAdd.jsp頁(yè),而SubEdit頁(yè)和SubDel頁(yè)所進(jìn)行的具體操作是根據(jù)由類別管理的主頁(yè)面?zhèn)鬟f過來的參數(shù)來判斷編輯或刪除表中的哪一條記錄。主頁(yè)面應(yīng)把所有新聞?lì)悇e列出來。編輯管理類別的主頁(yè)面所進(jìn)行的操作就是在給出的靜態(tài)頁(yè)面的基礎(chǔ)上定義記錄集和添加幾種服務(wù)器行為。1. 首先在站點(diǎn)文件窗口中打開SubMan.jsp文件。2. &
49、#160; 定義記錄集,向頁(yè)面綁定動(dòng)態(tài)數(shù)據(jù)。定義記錄集就是從表tNewsSubject中取出記錄,動(dòng)態(tài)地顯示所有新聞?lì)悇e。定義記錄集時(shí),選取字段的項(xiàng)設(shè)置成選取所有的字段,顯示記錄的順序設(shè)置成按fSubjectID字段的升序排序。記錄集的名最好取成rsSubject。設(shè)置好的記錄集對(duì)話框如圖所示。綁定動(dòng)態(tài)數(shù)據(jù)。只需把記錄集rsSubject中的fSubjectName字段和fSubjectID字段分別綁定到SubMan.jsp頁(yè)面上表中【類別】列處和ID列處。3. 添加Go To Detail Pag
50、e服務(wù)器行為。把頁(yè)面中的編輯操作和刪除操作分別設(shè)置成動(dòng)態(tài)鏈接,并向該鏈接所指向的頁(yè)傳遞參數(shù)。設(shè)置該動(dòng)態(tài)鏈接需要添加Go To Detail Page服務(wù)器行為。為【編輯】操作設(shè)置動(dòng)態(tài)鏈接時(shí)的Go To Detail Page服務(wù)器行為對(duì)話框如下圖所示。4. 為【刪除】操作設(shè)置動(dòng)態(tài)鏈接時(shí)添加Go To Detail Page服務(wù)器行為,與【編輯】操作所不同的是Detail Page處的文本框中輸入subdel.jsp文件名。5. 添加Repeat Region服務(wù)器行為。添加R
51、epeat Region服務(wù)器行為,使新聞?lì)悇e全部顯示出來。選中表格中的第1行。如圖所示。選中表格中的第1行6. 添加Repeat Region服務(wù)器行為時(shí)設(shè)置成顯示所有新聞?lì)悇e。如圖所示。Repeat Region服務(wù)器行為對(duì)話框7. 為【新建類別】添加鏈接。該鏈接不需向所指向的頁(yè)傳遞參數(shù),在屬性浮動(dòng)面板中就可以完成。設(shè)置該鏈接的屬性浮動(dòng)面板如圖所示。8. 執(zhí)行了編輯、刪除或新建類別之后,應(yīng)該刷新menu.jsp頁(yè)
52、,即框架的左邊導(dǎo)航部分。單擊頁(yè)面下面的body標(biāo)簽 ,選中頁(yè)面的所有內(nèi)容。單擊行為監(jiān)視器中的“+”按鈕,從彈出的菜單上選擇Call JavaScript選項(xiàng)。設(shè)置鏈接的屬性浮動(dòng)面板9. 在彈出的對(duì)話框中輸入window.parent.left.location='menu.jsp'。如圖所示。Call JavaScript對(duì)話框類別管理的主頁(yè)面也就設(shè)置完了。19.5.2 編輯新聞?lì)悇e編輯新聞?lì)悇e頁(yè)SubEdit.jsp的主要功能就是修改相應(yīng)表中的某一個(gè)記錄。該頁(yè)添加了所需要的行為后的樣式如圖所示。SubEdit.jsp
53、文件Ø 制作“編輯新聞?lì)悇e”頁(yè)面1. 添加Validate Form行為。添加Validate Form行為的目的是把修改后的類別在提交給服務(wù)器之前驗(yàn)證窗體對(duì)象中是否有內(nèi)容。只有窗體對(duì)象中不為空,才能把修改后的結(jié)果提交到服務(wù)器端對(duì)相應(yīng)的數(shù)據(jù)表中的記錄進(jìn)行修改。如圖所示進(jìn)行添加該行為。2. 定義記錄集。編輯新聞?lì)悇e就是對(duì)存儲(chǔ)新聞?lì)悇e的數(shù)據(jù)表中的記錄進(jìn)行修改,需要用Updat
54、e Record服務(wù)器行為,添加該服務(wù)器行為的前提要定義一個(gè)記錄集。按下圖所示進(jìn)行定義記錄集。定義該記錄集需要設(shè)置取得記錄的過濾器,就是根據(jù)從管理類別的主頁(yè)面SubMan.jsp傳過來的參數(shù)進(jìn)行選取記錄集。3. 定義完記錄后,分別把fSubjectID字段和fSubjectName字段綁定到Form中的類別ID和類別處。綁定后如圖所示。4. 添加Update Record服務(wù)器行為。設(shè)置Update Record服務(wù)器行為對(duì)話框如圖所示。Unique Key Column下拉
55、列表中選擇fSubjectID字段作為修改表tNewsSubject 中某一個(gè)記錄的依據(jù),fSubjectID字段的值在表tNewsSubject中是惟一的19.5.3 新建新聞?lì)悇e新建新聞?lì)悇e在服務(wù)器端所進(jìn)行的操作就是向表tNewsSubject中插入一條記錄。所以完成該頁(yè)需要添加2個(gè)行為:一個(gè)是用來在客戶端驗(yàn)證窗體對(duì)象中是否有內(nèi)容的Validate Form行為;一個(gè)就是用來向表tNewsSubject中插入記錄的Insert Record服務(wù)器行為。樣式如圖所示。設(shè)計(jì)好的SubAdd.jsp文件1. 按下圖所示進(jìn)行添加Valid
56、ate Form行為。 注意把用來輸入新聞?lì)愋途幪?hào)的窗體對(duì)象設(shè)置為數(shù)值型(Number)2. 按下圖所示進(jìn)行添加Insert Record 服務(wù)器行為。在設(shè)置該對(duì)話框時(shí)注意Form Elements處的數(shù)據(jù)類型要匹配,以及所插入記錄的數(shù)據(jù)表。Insert Record服務(wù)器行為對(duì)話框19.5.4 刪除新聞?lì)悇e刪除新聞內(nèi)容在服務(wù)器端所進(jìn)行的操作就是刪除相應(yīng)數(shù)據(jù)表中的某些記錄。該文件在執(zhí)行時(shí)是不可見的。所完成該頁(yè)需要定義一個(gè)Prepared完成對(duì)數(shù)據(jù)庫(kù)的刪除操作。1. 新建一個(gè)文
57、檔窗口,以Subdel.jsp保存該文件。2. 定義Prepared。打開服務(wù)器行為監(jiān)視器,單擊面板上的“+”按鈕,從彈出的菜單中選擇Prepared(Insert,Update,Delete)選項(xiàng),打開定義Prepared對(duì)話框。按圖所示進(jìn)行定義。在SQL處輸入的語(yǔ)句如下。DELETE FROM tNewsSubject WHERE fSubjectID = iSubID 這個(gè)語(yǔ)句描述的是根據(jù)WHERE子句的規(guī)定來刪除表tNewsSubject中的記錄,而變量iSubID的值是從類別管理的主頁(yè)面中傳過來的。當(dāng)然,還需要在V
58、ariables處定義iSubID變量。在Name處輸入iSubID,在Run-time Value處輸入request.getParameter(“fSubjectID”)。3. 最后轉(zhuǎn)到代碼窗口中,在頁(yè)面的最后加上一條語(yǔ)句:response.sendRedirect("subMan.jsp");使之執(zhí)行操作后轉(zhuǎn)到類別管理頁(yè)。如下。<%ConnPreDel.close();response.sendRedirect("subMan.jsp");%>19.6 在線更新新聞發(fā)布系統(tǒng)的內(nèi)
59、容每天都要更新,在線更新主要是新聞的內(nèi)容進(jìn)行更新。更新的具體操作就是編輯新聞、刪除新聞和添加新聞。在線更新所對(duì)應(yīng)的網(wǎng)頁(yè)文件包括新聞管理頁(yè)newsMan.jsp、添加新聞頁(yè)newsAdd.jsp和刪除新聞頁(yè)newsDel.jsp。newsMan.jsp頁(yè)在瀏覽器中瀏覽的樣式如圖所示。從圖中可看出,newsMan.jsp頁(yè)的頂部顯示當(dāng)前新聞內(nèi)容的類別,新聞?lì)悇e的下面就是當(dāng)前新聞?lì)悇e的標(biāo)題,從新聞標(biāo)題右面的操作項(xiàng)可以對(duì)新聞具體內(nèi)容的刪除或添加,下方的文本框就是對(duì)某一新聞標(biāo)題所對(duì)應(yīng)的具體內(nèi)容進(jìn)行編輯。為了對(duì)本頁(yè)更清晰地講解,把新聞內(nèi)容管理頁(yè)NewsMan.jsp分成3部分講述,顯示當(dāng)前新聞標(biāo)題、顯示當(dāng)
60、前新聞內(nèi)容和編輯新聞內(nèi)容。新聞內(nèi)容管理頁(yè)面19.6.1 顯示當(dāng)前新聞?lì)悇e1. 首先在站點(diǎn)文件窗口中打開沒有添加動(dòng)態(tài)數(shù)據(jù)和行為的newsMan.jsp文件。2. NewsMan.jsp頁(yè)對(duì)應(yīng)的新聞?lì)悇e標(biāo)題要能根據(jù)所選的新聞?lì)愋蛣?dòng)態(tài)地顯示。需要為這一部分定義一個(gè)記錄集,記錄集根據(jù)從menu.jsp頁(yè)傳過來的參數(shù)進(jìn)行選取記錄。設(shè)置定義記錄集的對(duì)話框如圖所示。在SQL處輸入的語(yǔ)句如下:SELECT fSubjectName, fSubjectIDFROM tNewsSubjectWH
61、ERE fSubjectID = iSubjectID該語(yǔ)句的功能是選取表tNewsSubject中的fSubjectName字段和 fSubjectID字段,并且只選取字段fSubjectID的值等于變量iSubjectID的值的記錄。另外還需要在Variables處定義變量iSubjectID并賦初值,在Name處輸入變量名iSubjectID,在Default Value處輸入1作為該變量的初值,在Run-time Value處輸入request.getParameter("fSubjectID")取得從上一頁(yè)傳過來的標(biāo)記新聞?lì)悇e的參數(shù),作為該語(yǔ)句運(yùn)行時(shí)的值。3.
62、160; 定義好記錄集后,把記錄集rsCurSubject中的fSubjectName字段綁定到頁(yè)面【類別】項(xiàng)中。如圖所示。向【類別】處綁定動(dòng)態(tài)數(shù)據(jù)19.6.2 顯示當(dāng)前新聞標(biāo)題顯示當(dāng)前新聞標(biāo)題就是根據(jù)在menu.jsp頁(yè)所選的新聞?lì)悇e,向NewsMan.jsp頁(yè)傳遞參數(shù),顯示當(dāng)前用戶所選擇的新聞?lì)悇e的標(biāo)題。而這部分動(dòng)態(tài)內(nèi)容所對(duì)應(yīng)的記錄集就是根據(jù)這個(gè)參數(shù)取得的。根據(jù)新聞標(biāo)題可以編輯相應(yīng)的具體內(nèi)容。所以,需要為這一部分添加一個(gè)Go To Detail Page服務(wù)器行為。要同時(shí)顯示多條新聞標(biāo)題,需要添加Repeat Region服務(wù)器行為。如果沒有
63、某一類型的新聞,則新聞標(biāo)題不顯示,可以添加一種Show Region服務(wù)器行為實(shí)現(xiàn)此功能。如果不顯示新聞標(biāo)題,則顯示【沒有新聞!添加新聞】,并且【添加新聞】設(shè)置為動(dòng)態(tài)鏈接。還要把【添加】和【刪除】字樣分別設(shè)置為動(dòng)態(tài)鏈接。在新聞標(biāo)題這一部分,有兩組動(dòng)態(tài)導(dǎo)航鏈接,從這兩組導(dǎo)航鏈接可以查看當(dāng)前類型的所有新聞??梢杂脭U(kuò)展的服務(wù)器行為現(xiàn)實(shí)這組動(dòng)態(tài)鏈接。Ø 制作“顯示當(dāng)前新聞標(biāo)題”頁(yè)面1. 首先為這部分動(dòng)態(tài)內(nèi)容建立記錄集。建立記錄集的對(duì)話框如
64、圖所示。定義該記錄集時(shí)注意從表tNews中選取數(shù)據(jù)。只需要選取 fNewsID、fTopic和fDate三個(gè)字段。fNewsID字段保存的是表中新聞的編號(hào),它惟一標(biāo)識(shí)一條新聞;fTopic保存的是新聞的標(biāo)題,fDate保存是新建新聞的日期。Variables中定義變量iSubjectID并賦初值:Name:iSubjectID;Default Value:1;Run-time Value:request.getParameter("fSubjectID")取得從上一頁(yè)傳過來的標(biāo)記新聞?lì)悇e參數(shù),作為運(yùn)行時(shí)的值在SQL輸入的語(yǔ)句如下:SELECT fNewsID, fTopic
65、, fDateFROM tNewsWHERE fSubjectID = iSubjectIDORDER BY fDate DESC這個(gè)語(yǔ)句的功能與建立記錄集rsCurSubject時(shí)輸入的語(yǔ)句功能相似,只是語(yǔ)句的最后多加了一個(gè)ORDER BY fDate DESC子句,這個(gè)子句的功能就是按日期的倒序排列從表中取得的記錄,從頁(yè)面的內(nèi)容上說就是先列出最新的新聞標(biāo)題。2. 向頁(yè)面綁定動(dòng)態(tài)數(shù)據(jù)。把fTopic字段和fDate字段分別綁定到顯示新聞?lì)悇e的下面表格標(biāo)題處和日期處。3. 為
66、新聞標(biāo)題添加Go To Detail Page服務(wù)器行為。選中rsNewsResult.fTopic 在服務(wù)器行為監(jiān)視器中打開Go To Detail Page服務(wù)器行為對(duì)話框。如圖所示。鏈接到newsMan.jsp頁(yè)的同時(shí),把rsNewsResult記錄集當(dāng)前記錄的fNewsID字段的值作為參數(shù)fNewsID的值傳遞過去。另外,newsMan.jsp頁(yè)在運(yùn)行時(shí)需要一個(gè)fSubjectID參數(shù)來標(biāo)明當(dāng)前新聞?lì)悇e,所以把URL parameters復(fù)選框打勾,以傳遞當(dāng)前頁(yè)面的fSubjectID參數(shù)到下一個(gè)頁(yè)面。實(shí)際上,當(dāng)前頁(yè)面是newsMan.jsp,下一個(gè)頁(yè)面也是newsMan.jsp,它是
67、一個(gè)結(jié)果頁(yè)和細(xì)節(jié)頁(yè)在一個(gè)頁(yè)上的頁(yè)面。如果不把URL parameters復(fù)選框打勾,下一個(gè)newsMan.jsp頁(yè)面就會(huì)“忘掉”fSubjectID這個(gè)URL參數(shù),造成當(dāng)前新聞?lì)悇e顯示不正確4. 添加Go To Detail Page服務(wù)器行為時(shí)生成的代碼出現(xiàn)了一個(gè)bug。下面我們來修正Ultradev 4的這個(gè)bug。為新聞標(biāo)題添加Go To Detail Page服務(wù)器行為,可以通過該鏈接把相應(yīng)新聞標(biāo)題所指向的新聞具體內(nèi)容顯示在本頁(yè)下面的編輯區(qū)進(jìn)行編輯,但只能通過新聞標(biāo)題編輯一條新聞,若通過該鏈接再次編輯新聞的時(shí)候,就會(huì)出錯(cuò)。因?yàn)?/p>
68、每次點(diǎn)擊新聞標(biāo)題鏈接,需要向編輯區(qū)傳遞一個(gè)URL參數(shù),并且這個(gè)參數(shù)會(huì)被記住,所以當(dāng)再次點(diǎn)擊新聞標(biāo)題處鏈接的時(shí)侯,URL參數(shù)就會(huì)多出一個(gè)fNewsID參數(shù)。形如:newsMan.jsp?fNewsID=27&offset=0&fNewsID=33,造成語(yǔ)法錯(cuò)誤。5. 轉(zhuǎn)到代碼窗口中,查找找到變量MM_removeList,把變量MM_removeList處的語(yǔ)句:String MM_removeList = "index", MM_paramName ;修改成語(yǔ)句: String MM_removeL
69、ist = "index","fNewsID" ,MM_paramName ;即在原語(yǔ)句處多加了fNewsID字符串,這樣就可以去掉以前URL參數(shù)。6. 為【添加】字樣設(shè)置動(dòng)態(tài)鏈接。從【添加】鏈接進(jìn)入到添加頁(yè)時(shí),所顯示的新聞?lì)悇e應(yīng)與當(dāng)前新聞管理頁(yè)中的新聞?lì)悇e相同。所以需要把從新聞管理頁(yè)上一頁(yè)即menu.jsp頁(yè)傳過來的參數(shù)(這個(gè)參數(shù)也就是標(biāo)記新聞?lì)悇e的字段fSubjectID的值)傳遞到添加新聞頁(yè)。那么設(shè)置這個(gè)鏈接需要用Go To Related Page服務(wù)器行為。7. 先選中【添加】字樣,在服務(wù)器行為監(jiān)視器中打開Go To Related Page服務(wù)器行為對(duì)話框。在Related Page處輸入newsAdd.jsp文件名,注意選中URL Parameters處的復(fù)選框8. 為【刪除】字樣設(shè)置動(dòng)態(tài)鏈接?!緞h除】鏈接所指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024燕山郊野體育公園體育賽事轉(zhuǎn)播權(quán)及廣告招商合同3篇
- 強(qiáng)迫癥健康宣教
- 中醫(yī)針灸跟診心得醫(yī)德仁心
- 10 日月潭(說課稿)2024-2025學(xué)年統(tǒng)編版語(yǔ)文二年級(jí)上冊(cè)
- 18牛和鵝說課稿-2024-2025學(xué)年四年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版
- 2024影樓與攝影師長(zhǎng)期合作協(xié)議范本3篇
- 2024技術(shù)轉(zhuǎn)讓合同約定的技術(shù)成果交付和保密
- 12 家鄉(xiāng)的喜與憂(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治四年級(jí)下冊(cè)
- 2024年版餐飲行業(yè)勞動(dòng)協(xié)議范例版B版
- 2025年度膩?zhàn)有袠I(yè)市場(chǎng)調(diào)研與分析合同3篇
- 廣東省深圳市(2024年-2025年小學(xué)四年級(jí)語(yǔ)文)統(tǒng)編版期末考試(上學(xué)期)試卷及答案
- 2024小學(xué)數(shù)學(xué)義務(wù)教育新課程標(biāo)準(zhǔn)(2022版)必考題庫(kù)與答案
- 微型頂管工藝簡(jiǎn)介
- 服務(wù)基層行資料(藥品管理)
- 小學(xué)三年級(jí)數(shù)學(xué)下冊(cè)計(jì)算題大全(每日一練共25份)
- 2024年中考數(shù)學(xué)壓軸題:圓與相似及三角函數(shù)綜合問題(教師版含解析)
- 安徽省2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- EPC項(xiàng)目機(jī)電安裝專業(yè)工程重難點(diǎn)分析及經(jīng)驗(yàn)交流
- 2023-2024學(xué)年江蘇省連云港市贛榆區(qū)九年級(jí)(上)期末英語(yǔ)試卷
- 大型活動(dòng)聯(lián)合承辦協(xié)議
- 2024年吉林高考語(yǔ)文試題及答案 (2) - 副本
評(píng)論
0/150
提交評(píng)論