스프링 MVC 컨트롤러 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | package com.example.spring01.controller; import java.util.List; import javax.inject.Inject; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.example.spring01.model.dto.MemberDTO; import com.example.spring01.service.MemberService; @Controller //스프링에서 관리하는 컨트롤러 빈으로 등록 public class MemberController { //MemberService 인스턴스를 주입시킴 @Inject MemberService memberService; @RequestMapping("member/list.do") //url mapping public String memberList(Model model) { List<MemberDTO> list = memberService.memberList(); model.addAttribute("list", list); // WEB-INF/views/member/member_list.jsp로 포워딩 return "member/member_list"; } @RequestMapping("member/write.do") //url mapping public String write() { // /WEB-INF/views/member/write.jsp로 포워딩 return "member/write"; } //@ModelAttribute : 폼에서 전달된 값을 저장하는 객체 @RequestMapping("member/insert.do") public String insert(@ModelAttribute MemberDTO dto) { //System.out.println(dto); memberService.insertMember(dto); return "redirect:/member/list.do"; } //@RequestParam : request.getParameter("변수명") 대체 @RequestMapping("member/view.do") public String view(@RequestParam String userid, Model model) { //모델에 자료 저장 model.addAttribute("dto", memberService.viewMember(userid)); // view.jsp로 포워딩 return "member/view"; } // java.util.Date @RequestMapping("member/update.do") public String update(MemberDTO dto, Model model) { //비밀번호 체크 boolean result = memberService.checkPw(dto.getUserid(), dto.getPasswd()); if(result) { //비밀번호가 맞으면 //회원정보 수정 memberService.updateMember(dto); //수정 후 목록으로 이동 return "redirect:/member/list.do"; //redirect }else { //비밀번호가 틀리면 model.addAttribute("dto", dto); model.addAttribute("join_date", memberService.viewMember(dto.getUserid()).getJoin_date()); model.addAttribute("message", "비밀번호를 확인하세요."); return "member/view"; //forward } } @RequestMapping("member/delete.do") public String delete(String userid, String passwd, Model model) { boolean result = memberService.checkPw(userid, passwd); if(result) { //비번이 맞으면 삭제 => 목록으로 이동 memberService.deleteMember(userid); return "redirect:/member/list.do"; }else { //비번이 틀리면 되돌아감 model.addAttribute("message","비밀번호를 확인하세요."); model.addAttribute("dto", memberService.viewMember(userid)); return "member/view"; } } } | cs |
컨트롤러 구현 과정
1. @Controller 어노테이션을 클래스에 적용한다.(해당 클래스가 컨트롤러 빈 객체에 등록되어 스프링이 관리해준다.)
2. @RequestMapping 어노테이션을 이용해서 처리할 요청 경로를 지정한다.(해당 경로로 요청시 메서드 실행.)
3. 웹 브라우저의 요청을 처리할 메서드를 구현(본격적으로 처리할 로직을 짜면 된다.)
4. 뷰 이름 리턴
Model 클래스는 데이터를 담아 전송하는데 사용된다.
Model addAttribute(String attrName, Object attrValue) : 이름과 벨류값이 파라미터. 모델 속성을 추가한다.
Model addAllAttribute(Map<String, ?> attributes) : 맵의 <키, 값> 쌍들을 모델 속성 이름과 값으로 추가한다.
boolean containsAttribute(String attrName) : 이름이 attrName인 모델 속성을 포함할 경우 true를 리턴한다.
'Certification > Spring(2V0-72.22, SCP)' 카테고리의 다른 글
Spring MVC - DAO & Service + Mapper (1) | 2018.08.07 |
---|---|
Spring MVC DTO / VO (0) | 2018.08.07 |
Spring WEB - DB 연결과 Test (0) | 2018.08.05 |
Spring WEB MVC 프로세스 - Home.jsp 동작순서 (0) | 2018.08.05 |
Spring MVC 웹프로젝트 기본 설정 (0) | 2018.08.05 |