728x90
반응형
package edu.kh.project.member.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import edu.kh.project.member.model.dto.Member;
@Controller // 요청/응답 클래스 + bean 등록(spring이 관리하는 객체)
@RequestMapping("/member") // 공통된 주소 앞부분 작성
// member로 시작하는 요청은 해당 컨트롤러에서 처리
public class MemberController {
// 로그인 : /member/login
// 로그아웃 : /member/logout
// 로그인(/member/login), POST 방식 처리
// class에 작성한 / member를 제외한 나머지 주소 부분을 value에 작성
//@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(HttpServletRequest req) {
// 파라미터 전달 방법 1 : HttpServletRequest를 이용
// -> Controller 메소드의 매개변수로 HttpServletRequest 작성
String inputEmail = req.getParameter("inputEmail");
System.out.println("inpujtEmail :" +inputEmail);
// * redirect 방법 *
// "redirect:요청주소"
return "redirect:/";
}
//@PostMapping
// -> @RequestMapping의 자식으로 POST방식 요청을 연결하는 어노테이션
// @PostMapping("/login")
public String login(/*@RequestParam("inputEmail")*/ String inputEmail,
/*@RequestParam("inputPw")*/ String inputPw) {
// 파라미터 전달 방법 2: @RequestParam 어노테이션 이용
// @RequestParam 어노테이션
// - request객체를 이용한 파라미터 전달 어노테이션
// - 매개변수 앞에 해당 어노테이션을 작성하면 매개변수에 값이 주입됨
// ** 파라미터의 name 속성 값과 매개변수명이 같으면
// @RequestParam 생략 가능 !! **
System.out.println("inputEmail : " +inputEmail);
System.out.println("inputPw : " +inputPw);
// 메인페이지 리다이렉트(재요청)
return "redirect:/";
}
@PostMapping("/login")
public String login(/*@ModelAttribute*/ Member inputMember) {
//파라미터 전달 방법 3 : @ModelAttribute를 이용한 방법
// - DTO( 또는 VO)와 같이 사용하는 어노테이션
// - 전달 받은 파라미터의 name 속성 값이
// 같이 사용되는 DTO의 필드명과 같다면
// 자동으로 setter를 호출해서 필드에 값을 세팅
// @ModelAttribute 사용 시 주의사항 !!
// - DTO에 기본 생성자와 setter가 필수로 존재해야 한다!!
// @ModelAttribute 어노테이션 생략 가능하다 !
// ** @ModelAttribute를 이용해 필드에 값이 셋팅된 객체를
// "커맨드 객체" 라고 한다.
System.out.println(inputMember);
return "redirect:/";
}
}728x90
반응형
'괴발개발 > java' 카테고리의 다른 글
| Srping web.xml 해석 (0) | 2024.08.03 |
|---|---|
| spring 용어 정리 및 mvc 흐름 (0) | 2024.08.02 |
| Spring Framework (0) | 2024.08.01 |
| 프로필 이미지 변경 (update profile Image) (1) | 2024.07.16 |
| 특정 게시판에서 일정한 범위의 목록 조회 width 페이지 네이션Page nation (0) | 2024.07.09 |