(1) package com.example.memo;
(2)
(3) import java.util.List;
(4) import java.util.Map;
(5)
(6) import org.springframework.beans.factory.annotation.Autowired;
(7) import org.springframework.stereotype.Controller;
(8) import org.springframework.ui.Model;
(9) import org.springframework.web.bind.annotation.GetMapping;
(10) import org.springframework.web.bind.annotation.PathVariable;
(11) import org.springframework.web.bind.annotation.PostMapping;
(12) import org.springframework.web.bind.annotation.RequestMapping;
(13) import org.springframework.web.bind.annotation.RequestParam;
(14)
(15) @Controller
(16) public class MemoController {
(17)
(18) @Autowired
(19) private MemoDAO memoDao;
(20)
(21) @GetMapping("/")
(22) public String list(Model model) {
(23) List<Map<String, Object>> memos = memoDao.list();
(24) model.addAttribute("memos", memos);
(25) return "list";
(26) }
(27)
(28) @GetMapping("/write")
(29) public String write() {
(30) return "write";
(31) }
(32)
(33) @PostMapping("/insert")
(34) public String insert(@RequestParam Map<String, Object> memo) {
(35) memoDao.insert(memo);
(36) return "redirect:/";
(37) }
(38)
(39) @GetMapping("/edit/{id}")
(40) public String edit(@PathVariable(name = "id") int id, Model model) {
(41) Map<String, Object> memo = memoDao.detail(id);
(42) model.addAttribute("memo", memo);
(43) return "edit";
(44) }
(45)
(46) @PostMapping("/update")
(47) public String update(@RequestParam Map<String, Object> memo) {
(48) memoDao.update(memo);
(49) return "redirect:/";
(50) }
(51)
(52) @GetMapping("/delete/{id}")
(53) public String delete(@PathVariable(name = "id") int id) {
(54) memoDao.delete(id);
(55) return "redirect:/";
(56) }
(57)
(58) @RequestMapping("/search")
(59) public String list(@RequestParam(name = "keyword", defaultValue = "") String keyword, Model model) {
(60) List<Map<String, Object>> memos = memoDao.search("%" + keyword + "%");
(61) model.addAttribute("memos", memos);
(62) model.addAttribute("keyword", keyword);
(63) return "list";
(64) }
(65) }
(66)