實習日記--day6(實現登錄與對查詢結果的分頁)

實習日記--day6(實現登錄與對查詢結果的分頁)

通過標準框架實現登錄

配置完初始文件後與Tomcat後,導入已經準備好的jsp等文件,啓動項目,在網頁上彈出如下界面:
在這裏插入圖片描述
接下來講述如何實現登錄功能。首先打開index.jsp,這是項目在啓動時第一個運行的文件,其中核心代碼如下:

<html>
<body>
<jsp:forward page="/login.jsp"></jsp:forward>
</body>
</html>

可以見到該文件在啓動後,導向了login.jsp文件,所以接下來打開的是login.jsp。接下來我們打開login.jsp查看其中的代碼:
在這裏插入圖片描述
上圖的下劃線部分原本爲空,上圖是我已經完成後的結果。可以看到在上圖的下部有一個“登錄”按鈕,所以我們可以判斷這個位置就是響應登錄操作的頁面。下劃線前的“action”表示,這是在按動登錄按鈕後響應按鈕的動作。我們設置按動按鈕後轉到的位置有login. do 標識符,就出現了上圖的代碼。
接下來我們設置對應login. do的函數位置。
在這裏插入圖片描述
上圖爲完成後的代碼,這部分代碼是在controller.java中的。可以看到@RequestMapping(“login. do”)這行代碼,它是對應我們在前一步所寫的地址路徑。在點擊登錄按鈕後,就會從login.jsp文件轉到@RequestMapping處開始運行。這就是通過標號來使運行位置從前端到後端。接下來就是對後端數據的操作,通過dao層的函數處理數據等。這些在之前的日記中都有記錄,此處類似,不再贅述。登錄成功後顯示如下界面:
在這裏插入圖片描述

實現對查詢結果的分頁

1.導入對應的jar包:將如下代碼放置入parent下的pom.xml對應位置中,idea會自動下載對應jar包

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.2</version>
</dependency>

2.對UserServiceImpl.java中的findALL()函數進行改寫,原來的findAll函數沒有參數,現在對其改寫如下:
在這裏插入圖片描述
page表示頁數,size表示每頁顯示的記錄條數。PageHelper.startPage(page,size) 則表示告訴dao中的findAll函數,接下來只需要查詢位置爲第page頁的size條記錄返回即可。同樣的,由於UserServiceImpl繼承了UserService,需要對UserService中的函數添加參數。
3.爲了能夠讓dao能夠識別這樣的分頁查詢信息,需要在如下文件中添加代碼
在這裏插入圖片描述
添加代碼如下:

   <property name="plugins">
        <array>
            <bean class="com.github.pagehelper.PageInterceptor">
                <property name="properties">
                    <props>
                        <prop key="helperDialect">mysql</prop>
                        <prop key="reasonable">true</prop>
                    </props>
                </property>
            </bean>
        </array>
    </property>

4.接下來要在查詢用戶信息的jsp文件中修改代碼,使其能傳遞page,size到後端。原先查詢界面爲在一頁中顯示所有的記錄條數,而我們修改的目標是在一頁中按照固定條數顯示,並且可以更換頁數。實現後界面如下:
在這裏插入圖片描述
可以看到上圖已經實現了分頁功能。
接下來我們來修改user-list.jsp文件使其實現分頁功能。修改後該文件的修改部分代碼如下
在這裏插入圖片描述
每個Li標籤代表一個按鈕,{pageContext.request.contextPath}/user/findAll.do代表點擊該按鈕後會跳轉到的位置,可以看見這裏是跳轉到findAll位置,即查詢函數的位置。路徑後緊跟着的?page=1&size=4,代表着在跳轉時還傳輸了兩個數值,名爲page的值爲1,名爲size的值爲4。這就是首頁按鈕的含義,首頁必然是第一頁,選擇顯示4條。
上一頁按鈕的page值爲pageinfo.pageNum-1,即當前頁的值減一。
下一頁按鈕的page值爲pageinfo.pageNum+1,即當前頁的值加一。
尾頁按鈕的page值爲pageinfo.pages,即最後一頁。
可以看到中間還有一個foreach函數
在這裏插入圖片描述
它的作用就是產生從1到最後一頁的按鈕,如下圖中的1,2
在這裏插入圖片描述
foreach函數中設置變量名爲pageNum,其初始值爲1,最大值爲pageinfo.pages,通過循環即可設置出多個按鈕。
至此,分頁功能全部完成。

發佈了14 篇原創文章 · 獲贊 0 · 訪問量 452
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章