正文

都市供求信息網(wǎng)(12)

JSP項目開發(fā)案例全程實錄(第2版) 作者:明日科技


1.7 前臺信息顯示設(shè)計

1.7.1 信息顯示概述

信息顯示是本系統(tǒng)要實現(xiàn)的主要功能之一,根據(jù)需求分析與系統(tǒng)設(shè)計,在前臺要實現(xiàn)3種顯示方式——首頁信息的列表顯示、某類別中所有信息的列表顯示和某信息詳細內(nèi)容的顯示。下面分別對這3種顯示方式進行介紹。

1.首頁信息的列表顯示

該顯示實現(xiàn)的效果是:以超鏈接方式顯示信息的標題,單擊這些超鏈接可以查看該信息的詳細內(nèi)容。該顯示方式將付費信息與免費信息進行分類顯示。對于所有類別的付費信息按照信息的發(fā)布時間降序排列顯示,如圖1.31所示;對于免費信息,進行歸類顯示,并且每一類中按照信息的發(fā)布時間降序排列顯示前5條記錄,如圖1.32所示。

2.某類別中所有信息的列表顯示

該顯示實現(xiàn)的效果是:顯示出該類別中所有信息的詳細內(nèi)容。該顯示方式同樣將付費信息與免費信息進行分類顯示,并且對所有已通過審核的付費信息與所有已通過審核的免費信息都按照信息的發(fā)布時間降序排列顯示。當用戶單擊導航欄中的超鏈接后,就會通過該方式顯示信息,如圖1.33所示。

3.某信息詳細內(nèi)容的顯示

該顯示方式實現(xiàn)的效果是:顯示選擇的某信息的詳細內(nèi)容。當用戶單擊信息標題超鏈接后,就會顯示該信息的詳細內(nèi)容,如圖1.34所示。

對于前臺的信息顯示,應(yīng)該顯示已通過審核的信息;對于免費信息的列表顯示,要進行分頁的顯示。

1.7.2  信息顯示技術(shù)分析

按照1.7.1節(jié)介紹的3種顯示方式,下面分別介紹各種方式的實現(xiàn)技術(shù)。

1.首頁列表顯示技術(shù)分析

首頁的信息顯示又分為付費信息的顯示與免費信息的顯示,下面分別介紹。

? 實現(xiàn)付費信息顯示的技術(shù)分析。

該技術(shù)要實現(xiàn)的是以超鏈接形式顯示出數(shù)據(jù)庫中所有已付費信息的標題。要實現(xiàn)這樣一個目的,可先按照用戶訪問、程序處理、頁面顯示這樣的程序流程進行反向分析。

(1)先來考慮如何在JSP頁面中輸出信息??稍O(shè)想將需要顯示的已付費信息都存在一個List集合對象中,則在頁面中可通過Struts 2.0的iterator標簽遍歷這個集合,然后再使用property標簽輸出信息,實現(xiàn)信息的列表顯示。

(2)接下來考慮如何在程序中生成這樣的List集合對象。因為信息都以記錄形式保存在數(shù)據(jù)庫中,要在頁面中顯示信息,就必須先查詢數(shù)據(jù)庫獲取符合已付費條件的記錄,然后依次將每條記錄封裝到對應(yīng)的JavaBean中,最后創(chuàng)建一個List集合對象存儲這些JavaBean。這個過程實際上就是將信息從以記錄存儲的形式轉(zhuǎn)換為通過JavaBean進行封裝的過程,如圖1.35所示。

(3)最后考慮如何生成SQL查詢語句。查詢數(shù)據(jù)庫獲取所有顯示在前臺的已付費信息,需要兩個條件——已通過審核和已付費。這兩個條件都是已知的,不需要從請求中獲取,所以當用戶訪問首頁時,可直接在處理類中生成SQL語句。

? 實現(xiàn)免費信息顯示的技術(shù)分析。

該技術(shù)要實現(xiàn)的是以超鏈接形式顯示出每個類別中最新發(fā)布的前5條免費信息的標題。在實現(xiàn)顯示之前,同樣可采用實現(xiàn)付費信息顯示的技術(shù)分析,但在分析第(2)步的List集合對象中存儲的不是JavaBean,而是另外一個List集合對象,在這個List集合對象中存儲的是封裝信息的JavaBean,如圖1.36所示。這樣存儲信息,是為了在頁面中進行歸類顯示免費信息,顯示的效果如圖1.32所示。

2.某類別中所有信息的列表顯示技術(shù)分析

該技術(shù)要實現(xiàn)的是列表顯示該類別下所有已通過審核的信息的詳細內(nèi)容。它與首頁付費信息顯示技術(shù)的實現(xiàn)是相同的,只不過在頁面中顯示的是信息的詳細內(nèi)容,這只需通過property標簽輸出JavaBean中所有屬性值即可實現(xiàn)。

3.某信息詳細內(nèi)容顯示技術(shù)分析

該技術(shù)要實現(xiàn)的是顯示被選中信息的詳細內(nèi)容。與之前實現(xiàn)列表顯示技術(shù)不同的是,這里不需要List集合對象,因為只顯示一條記錄,可直接將查詢到的信息封裝到JavaBean對象中后,在響應(yīng)的頁面中通過property標簽輸出。此時property標簽的應(yīng)用與列表顯示中property標簽的使用是不同的,主要體現(xiàn)在標簽的value屬性值的設(shè)置上。

4.信息列表顯示中的分頁技術(shù)分析

在列表顯示信息時,必須要考慮分頁的實現(xiàn),因為本系統(tǒng)是通過數(shù)據(jù)庫分頁查詢的方法實現(xiàn)的。數(shù)據(jù)庫分頁是指通過查詢語句從數(shù)據(jù)庫中查詢出某頁所要顯示的數(shù)據(jù)。例如,某一數(shù)據(jù)表中有10條記錄,若以每頁4條記錄來進行顯示,若要顯示第2頁信息,則只需查詢從第5條開始到第8條的所有記錄。

例如,某數(shù)據(jù)表存在一個名稱為id的字段。將其設(shè)置為自動編號,這樣數(shù)據(jù)表中的記錄就會以該字段遞增排列。若對該表進行分頁查詢,可使用如下查詢語句,查詢出只在當前頁中需要顯示的所有記錄。

select top m * from tb_table where id>(select MAX(id) from(select top (n-1)*m (id) from tb_table) as maxid)

其中,n為當前頁碼;m為每頁顯示的記錄數(shù);id是一個被設(shè)為自動遞增的字段名;select top(n-1)*

m (id) from tb_table子查詢語句表示從tb_table表中查詢出第n頁前的所有記錄;select MAX(id) from(子查詢語句1)as maxid表示從子查詢語句1中查詢出字段id中的最大值。

所以整個SQL語句表示:在tb_table表中,以id字段的內(nèi)容大于一個指定值的記錄為起點,查詢出前m條記錄,該指定值為前n-1頁中id字段內(nèi)容中的最大值。

% 注意:查詢第一頁中的記錄,應(yīng)使用select top m * from tb_table語句。

本系統(tǒng)是按照信息的發(fā)布時間來顯示信息的,最新發(fā)布的信息顯示在頂部,所以對查詢出的記錄要按照發(fā)布時間進行降序排列。此時分頁查詢的SQL語句應(yīng)以信息的發(fā)布時間作為分頁的條件,而不能再使用設(shè)為自動編號的字段了。

 

 


上一章目錄下一章

Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號