5-3 掲示板の改善
⑤コントローラの修正
・コントローラを以下の通り修正します。
(わかりやすくするためにすべてのコードを記述していますが、修正不要の部分は5-1で作成されたソースのままで構いません)
@Controller public class BulletinBoardController { @Autowired BulletinBoardRepository repos; @Autowired DivisionRepository d_repos; /* 一覧画面(初期画面)への遷移 */ @GetMapping public ModelAndView list() { ModelAndView mav = new ModelAndView(); List<BulletinBoard> list = repos.findAll(); mav.setViewName("bbs/list"); mav.addObject("data", list); return mav; } /* 新規画面への遷移 */ @GetMapping("/add") ModelAndView add() { ModelAndView mav = new ModelAndView(); BulletinBoard bbs = new BulletinBoard(); mav.addObject("bbs", bbs); mav.setViewName("bbs/new"); //分類テーブルの読み込み List<Division> list = d_repos.findAll(); mav.addObject("lists", list); return mav; } /* 編集画面への遷移 */ @GetMapping("/edit") ModelAndView edit(@RequestParam int id) { ModelAndView mav = new ModelAndView(); BulletinBoard bbs = repos.findById(id); mav.addObject("bbs", bbs); mav.setViewName("bbs/new"); //分類テーブルの読み込み List<Division> list = d_repos.findAll(); mav.addObject("lists", list); return mav; } /* 詳細画面への遷移 */ @GetMapping("/show") ModelAndView show(@RequestParam int id) { ModelAndView mav = new ModelAndView(); BulletinBoard bbs = repos.findById(id); mav.addObject("bbs", bbs); //分類テーブルの読み込み Division div = d_repos.findById(bbs.getDivision()); mav.addObject("div", div); mav.setViewName("bbs/show"); return mav; } /* 更新処理 */ @PostMapping() @Transactional(readOnly=false) public ModelAndView save( @ModelAttribute("bbs") BulletinBoard bbs) { Date date = new Date(); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd"); bbs.setDate(sdf1.format(date)); repos.saveAndFlush(bbs); return new ModelAndView("redirect:users/list"); } /* 削除処理 */ @PostMapping("/delete") @Transactional(readOnly=false) public ModelAndView delete(@RequestParam int id) { repos.deleteById(id); return new ModelAndView("redirect:bbs/list"); } /* 初期データ作成 */ @PostConstruct public void init() { //掲示板初期データの登録 BulletinBoard bbs1 = new BulletinBoard(); bbs1.setDate("2018/1/11"); bbs1.setTitle("帰社日について"); bbs1.setUser("松江 太郎"); bbs1.setNote("帰社日は以下の通りです。2018/01/11 2018/02/13"); bbs1.setDivision(1); repos.saveAndFlush(bbs1); bbs1 = new BulletinBoard(); bbs1.setDate("2018/04/10"); bbs1.setTitle("新入社員歓迎会のお知らせ"); bbs1.setUser("松江 太郎"); bbs1.setNote("新入社員歓迎会を実施します"); bbs1.setDivision(1); repos.saveAndFlush(bbs1); //分類テーブル初期データの登録 Division div1 = new Division(); div1.setId(1); div1.setName("通達/連絡"); d_repos.saveAndFlush(div1); div1 = new Division(); div1.setId(2); div1.setName("会議開催について"); d_repos.saveAndFlush(div1); div1 = new Division(); div1.setId(3); div1.setName("スケジュール"); d_repos.saveAndFlush(div1); div1 = new Division(); div1.setId(4); div1.setName("イベント"); d_repos.saveAndFlush(div1); div1 = new Division(); div1.setId(5); div1.setName("その他"); d_repos.saveAndFlush(div1); } }