───────┬──────────────────────────────────────────────────────────────────────── │ File: src/main//java/jp/ac/kobe_u/cs/itspecialist/todoapp/controller/MemberController.java ───────┼──────────────────────────────────────────────────────────────────────── 1 │ package jp.ac.kobe_u.cs.itspecialist.todoapp.controller; 2 │ 3 │ import java.util.List; 4 │ 5 │ import org.springframework.beans.factory.annotation.Autowired; 6 │ import org.springframework.stereotype.Controller; 7 │ import org.springframework.ui.Model; 8 │ import org.springframework.validation.BindingResult; 9 │ import org.springframework.validation.annotation.Validated; 10 │ import org.springframework.web.bind.annotation.GetMapping; 11 │ import org.springframework.web.bind.annotation.ModelAttribute; 12 │ import org.springframework.web.bind.annotation.PathVariable; 13 │ import org.springframework.web.bind.annotation.PostMapping; 14 │ import org.springframework.web.bind.annotation.RequestMapping; 15 │ 16 │ import jp.ac.kobe_u.cs.itspecialist.todoapp.dto.MemberForm; 17 │ import jp.ac.kobe_u.cs.itspecialist.todoapp.entity.Member; 18 │ import jp.ac.kobe_u.cs.itspecialist.todoapp.service.MemberService; 19 │ 20 │ @Controller 21 │ @RequestMapping("/admin") 22 │ public class MemberController { 23 │ @Autowired 24 │ MemberService mService; 25 │ 26 │ /** 27 │ * 管理者用・ユーザ登録ページ HTTP-GET /admin/register 28 │ * 29 │ * @param model 30 │ * @return 31 │ */ 32 │ @GetMapping("/register") 33 │ String showUserForm(@ModelAttribute(name = "MemberForm") MemberForm form, Model model) { 34 │ List<Member> members = mService.getAllMembers(); 35 │ model.addAttribute("members", members); 36 │ model.addAttribute("MemberForm", form); 37 │ 38 │ return "register"; 39 │ } 40 │ 41 │ /** 42 │ * 管理者用・ユーザ登録確認ページを表示 HTTP-POST /admin/check 43 │ * 44 │ * @param form 45 │ * @param model 46 │ * @return 47 │ */ 48 │ @PostMapping("/check") 49 │ String checkUserForm(@Validated @ModelAttribute(name = "MemberForm") MemberForm form, 50 │ BindingResult bindingResult, Model model) { 51 │ // 入力チェックに引っかかった場合、ユーザー登録画面に戻る 52 │ if (bindingResult.hasErrors()) { 53 │ // GETリクエスト用のメソッドを呼び出して、ユーザー登録画面に戻る 54 │ return showUserForm(form, model); 55 │ } 56 │ 57 │ model.addAttribute("MemberForm", form); 58 │ 59 │ return "check"; 60 │ } 61 │ 62 │ /** 63 │ * 管理者用・ユーザ登録処理 -> 完了ページ HTTP-POST /admin/register 64 │ * 65 │ * @param form 66 │ * @param model 67 │ * @return 68 │ */ 69 │ @PostMapping("/register") 70 │ String createUser(@Validated @ModelAttribute(name = "MemberForm") MemberForm form, 71 │ BindingResult bindingResult, Model model) { 72 │ // 入力チェックに引っかかった場合、ユーザー登録画面に戻る 73 │ if (bindingResult.hasErrors()) { 74 │ // GETリクエスト用のメソッドを呼び出して、ユーザー登録画面に戻る 75 │ return showUserForm(form, model); 76 │ } 77 │ 78 │ Member m = mService.createMember(form); 79 │ model.addAttribute("MemberForm", m); 80 │ 81 │ return "registered"; 82 │ } 83 │ 84 │ @GetMapping("/delete/{mid}") 85 │ String deleteUser(@PathVariable String mid, Model model) { 86 │ mService.deleteMember(mid); 87 │ return "redirect:/admin/register"; 88 │ } 89 │ 90 │ } ───────┴────────────────────────────────────────────────────────────────────────