第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,測試