天天看點

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

摘要

通過對使用者表的管理,更加深入地講解SpringMVC的操作。

目錄[-]

<a href="#OSC_h4_1">文章已針對IDEA 15做了一定的更新,部分更新較為重要,請重新閱讀文章并下載下傳最新源碼。</a>

<a href="#OSC_h3_2">七、使用者管理</a>

<a href="#OSC_h4_3">1、JPA操作定義</a>

<a href="#OSC_h4_4">2、背景管理</a>

<a href="#OSC_h5_5">(1)檢視所有使用者</a>

<a href="#OSC_h5_6">(2)添加使用者</a>

<a href="#OSC_h5_7">(3)檢視使用者詳情</a>

<a href="#OSC_h5_8">(4)修改使用者資訊</a>

<a href="#OSC_h5_9">(5)删除使用者</a>

注:在閱讀本文前,請先閱讀:

<a href="http://my.oschina.net/gaussik/blog/385697">使用IntelliJ IDEA開發SpringMVC網站(一)開發環境</a>

<a href="http://my.oschina.net/gaussik/blog/513353">使用IntelliJ IDEA開發SpringMVC網站(二)架構配置</a>

<a href="http://my.oschina.net/gaussik/blog/513444">使用IntelliJ IDEA開發SpringMVC網站(三)資料庫配置</a>

    既然我們要做一個部落格管理系統,當然要首先實作我們的使用者管理。在上一文中,我們已經配置好了資料庫。接下來,就要實作網站的一些業務邏輯。

    在實作使用者管理操作之前,需要講解一下JPA的開發工作。

    首先,在com.gaussic.repository包内建立一個UserRepository接口:

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    讓該接口繼承 JpaRepository:

    在JpaRepository中,定義了幾個簡化的操作資料庫的方法:

    (1) findAll():查找表中所有記錄;

    (2)findOne(Integer id):按id來查找某一條記錄;

    (3)findByXXX(Object xxx):在這裡XXX是一個字段名,根據該字段的值開查找所有記錄;

    (4)save()和delete():添加一條記錄以及删除一條記錄。

    除此之外,我們還可以在該repository中自定義新的方法,這将在稍後實際開發中提及。

    為了盡可能的在省去篇幅的情況下,在此省去管理者操作的開發。預設在通路 /admin 時,進入背景管理。

    将MainController補充為如下形式:

    講解:

自動裝配:相當于資料庫操作的極簡化,隻要定義了就可以直接進行資料庫操作,不用再去管開啟連接配接、關閉連接配接等問題

找到所有記錄:使用JpaRepository的預設方法findAll()。

modelMap:用于将controller方法裡面的參數傳遞給所需的jsp頁面,以進行相關顯示。

    現在,需要在pages下建立目錄admin,并建立users.jsp頁面,以進行使用者的管理:

&lt;c&gt;标簽:在jsp中使用了jstl文法,可以友善地進行一些判斷&lt;c:if&gt;與周遊操作&lt;c:forEach&gt;;

頁面使用了Bootstrap,部分功能将在之後實作。

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    由于目前資料庫中沒有資料,因而顯示為空,現在需要向資料庫中添加使用者。

    在MainController中增加兩個方法:

/admin/users/add請求:get請求轉到添加使用者頁面

/admin/users/addP請求:post請求收集資料并存庫

@ModelAttribute注解:收集post過來的資料(在此,相當于post過來了一整個userEntity,不用一個一個地取)

save()和saveAndFlush():save()方法處理完畢後,資料依然在緩沖區未寫入資料庫,使用saveAndFlush()可以立即重新整理緩沖區,寫入資料庫

redirect:/admin/users:這裡使用重定向,可以讓該方法重定向通路一個請求,ruturn之後,将跳轉到 :/admin/users 所通路的頁面。

現在,在pages目錄下建立一個addUser.jsp:

&lt;form:form&gt;标簽:使用Spring的form标簽,可以友善的收集整塊資料,commondName=“user”說明form内的内容都儲存在這個user執行個體中,然後将整個user執行個體傳遞給controller處理。在所有的input标簽中,name一定要與UserEntity中的成員相同,不然無法找到。

在送出之後,背景将會處理 /admin/users/addP 請求。

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    輸入資料,點選送出,資料庫中将會寫入新的使用者,重新跳轉到使用者管理頁面:

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    在MainController中加入檢視詳情操作:

    在pages目錄下建立 userDetail.jsp:

    講解:如何通路一個執行個體内的資料?

        使用${}文法,在{}内可以使用類似Java的方法友善地通路資料。

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    從url可以看出,通路的是ID=1的使用者的詳細情況,這樣的URL采用了REST風格設計,看起來更加簡便。

    現在我們要對使用者資訊做一定的修改,那該如何做呢。假設我們要能夠修改全部的資料(除了id),JpaRepository未定義update方法,需要我們自己定義。

    打開UserRepository,添加updateUser()接口方法:

    在MainController中定義update操作方法:

    然後,在pages目錄下,建立updateUser.jsp檔案:

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    送出後,重新跳轉回使用者管理頁面,可發現修改完成:

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    現在,新添加一個使用者:

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    現在我們需要删掉新加入的使用者,打開MainController,加入以下方法:

使用IntelliJ IDEA開發SpringMVC網站(四)使用者管理

    這樣,增删該查基本完成了。

    其實,更到這裡,基本就可以開始開發工作了,還有一些其他的功能,都需要通過平時的積累以及多查資料來完成。例如JSON資料的處理,異步請求的處理,以及相關外鍵等操作。

    要知道的是,讀者所閱讀的三十分鐘,需要寫這篇文章的人數個小時的努力,整理确實不易。讀文章要有舉一反三地态度,才能真正的把東西學精學全。