1. 程式人生 > >第8講 8.2 SpringBoot 新增,修改,刪除操作

第8講 8.2 SpringBoot 新增,修改,刪除操作

,BookController

    1.新增add方法,

     添加註解@RequestMapping(value="/add",method=RequestMethod.POST)指定post方式請求

     寫儲存的方法, 重定向redirect ,位址列會發生改變

 

@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(Book book){
        bookDao.save(book);
        return "redirect:/book/list";

 }

 

 

 


 

    2.根據id查詢Book的preUpdate方法,返回值為ModelAndView,返回的檢視是bookUpdate 
對應的bookUpdate.ftl 檔案,該方法通過路徑傳遞引數,通過bookDao.findById(id).get();查詢book,網上有說findOne()方法和 getOne()方法,但是這兩個都不行。可能是版本的問題

 

@RequestMapping("/preupdate/{id}")

public ModelAndView preupdate(@PathVariable(value="id")Integer id){

        ModelAndView mav = new ModelAndView();
        Book book = bookDao.findById(id).get();
        mav.addObject("book", book);
        mav.setViewName("bookUpdate");
        return mav;
}

 


 

 

    3.更新update方法,post請求,註解@PostMapping(value="/update"),規定了post請求,轉發forward

 

@PostMapping(value="/update")
public String update(Book book){
        bookDao.save(book);
        return "forward:/book/list";
}

 


 

    4.寫刪除delete的方法(根據id),get請求,forward轉發

 

@GetMapping("/delete")
public String delete(Integer id){
        bookDao.deleteById(id);
        return "redirect:/book/list";
}

 


 

2,修改bookList.ftl   新增 , 修改  和 刪除的按鈕,


PS :注意兩者傳遞引數的方式不同 :

           <a href="/book/preupdate/${book.id}">修改</a>
            <a href="/book/delete?id=${book.id}">刪除</a>

    新增按鈕直接轉到新增頁面 :

            <a href="/bookAdd.html">新增</a>

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>圖書列表</title>
</head>
<body>
<a href="/bookAdd.html">新增</a>
<table>
    <tr>
        <th>編號</th>
        <th>名稱</th>
        <th>作者</th>
        <th>操作</th>
    </tr>
    <#list bookList as book>
    <tr>
        <td>${book.id}</td>
        <td>${book.name}</td>
        <td>${book.author}</td>
        <td>
            <a href="/book/preupdate/${book.id}">修改</a>
            <a href="/book/delete?id=${book.id}">刪除</a>
        </td>
    </tr>
    </#list>
</table>
</body>

</html>

 

 

 


 

3,bookAdd.html  寫 新增的介面,bookAdd.html 放在了webapp目錄下,form表單,post請求,

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新增圖書</title>
</head>
<body>
新增圖書
<form action="/book/add" method="post">
<table>
    圖書名稱:<input type="text" name="name" /><br/>
    圖書作者:<input type="text" name="author" /><br/>
    <input type="submit" value="提交"/>
</table>
</body>
</html>

 


 

4,bookUpdate.ftl  寫修改的介面,隱藏域,form表單,post請求,

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新增圖書</title>
</head>
<body>
修改圖書
<form action="/book/add" method="post">
<table>
    <input type="hidden" name="id" value="${book.id}"/>
    圖書名稱:<input type="text" name="name" value="${book.name}"/><br/>
    圖書作者:<input type="text" name="author" value="${book.author}"/><br/>
    <input type="submit" value="提交"/>
</table>
</body>
</html>

 

5,測試

 

8.2_SpringBoot_新增,修改,刪除操作