,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,测试