SpringBoot日記——信息修改PUT篇


  我們常用的功能,除了post和get,還有put和delete,這篇文章就介紹一下這個put的基本用法。

 

頁面跳轉和回顯

  1. 首先,我們之前的頁面已經將添加和修改的按鈕都做好了,那么如何實現這些按鈕的功能呢,來看代碼(先是list.html的跳轉):

  為了我們的添加和編輯跳轉正確,肯定要先把跳轉的請求發送正確,這里注意一下編輯的hred,我采用了拼接的方式,因為我們修改頁之前也說過,請求的路徑是/emp/{id}這種格式的,需要針對員工id來進行編輯。

<a class="btn btn-sm btn-success" href="emp" th:href="@{/emp}">添加員工</a>

<a class="btn btn-sm btn-primary" th:href="@{/emp/}+${emp.id}">編輯</a>

 

  2. 然后,我們修改員工,點進去以后的修改頁面,肯定是需要將這個員工的信息回顯,然后才修改這樣的步驟,我們先要實現這個回顯的功能:

  針對每一個需要回顯的地方,我們需要對應寫出展示的value值,根據不同的標簽我們寫入不同的屬性,比如男女的選擇,我們就用th:checked,以此類推,后邊都要有對應的修改。

  3. 我們在進入修改頁的時候,其實用的就是添加的頁面,而非新增一個修改頁,而且在這個添加頁要查詢才能回顯,所以,我們在controller中還要有一個對應的方法:

  來看我做了哪些操作,
    a. 首先查詢是get的,路徑對應了要修改員工的id;

    b. 因為是查詢id,參數要有PathVariable來對應路徑傳參到請求地址中,同樣為了回顯,肯定要有Model;

    c. 將需要回顯的信息加入model,比如該員工的信息,已經下邊可選的部門信息;

    d. 最后,因為添加和修改公用一個頁面,我們采用重定向的方式,再次指向添加的那個路徑;

    // 修改員工信息頁
    @GetMapping("/emp/{id}")
    public String toEditPage(@PathVariable("id") Integer id, Model model) {
        // 查詢並回顯該員工信息
        Employee employee = employeeDao.get(id);
        model.addAttribute("emp", employee);
        // 獲取部門信息
        Collection<Department> departments = departmentDao.getDepartments();
        model.addAttribute("departments", departments);
        // 回到修改頁,重寫添加頁
        return "emp/add";
    }

  先來看回顯是否正常,打開修改頁:(沒什么問題)

信息修改和添加

  上邊我們將回顯功能做出來了,接下來就是修改和添加的功能。

  1. 我們在此之前,有一個問題,我們修改是ok的,可再次點擊添加,頁面就會報錯了。報錯的原因呢? 我們的添加頁是不需要查詢員工信息的,而修改頁是需要的,然而都在一個頁面了是不是就識別出現問題了呢。

  所以,我們需要做這樣一個判斷,如果員工信息是空的就添加,如果不是空的就修改:

  2. 另外,修改頁進去以后的按鈕,可不能是添加了,而是修改,所以,這里也改動一下,同樣的判斷

  3. 以上,我們頁面的判斷完成了。接下來,我們就要用到PUT來修改了,也就是點擊修改按鈕后,原來的員工信息更新。

  知識點:form表單中method只是認識post和get,所以我們要采用另一種方式來實現put:

 4. 提交表單的地方,我們有兩個地方要修改:

  一個是PutMappting的controller方法,一個是模板中要告知按照id來提交表單。

    // 修改員工
    @PutMapping("/emp")
    public String updateEmployee(Employee employee){
        employeeDao.save(employee);
        // 修改完成,跳轉到列表頁
        return "redirect:/emps";
    }

 

P.S:有一個要說明的地方,我們在修改提交的時候一般會有這樣的提示:

原因是brith是錯誤的,所以我們要在配置文件中將這個日期格式化掉:

spring.mvc.date-format=yyyy-MM-dd HH:mm

 

  這樣,我們修改和添加的功能就都OK了~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM