📝 Spring 환경설정 및 커뮤니티 로그인, 회원가입 기능 공부
#230421
💻 memberController.class 참고
@RequestMapping("/login")
public String login(HttpServletRequest req)
logger.info("로그인 요청됨");
String inputEmail = req.getParameter("inputEmail");
String inputPw = req.getParameter("inputPw");
logger.debug("inputEmail : " + inputEmail);
logger.debug("inputPw : " + inputPw);
return "redirect:/";
}
@RequestParam("name속성값") 자료형 변수명
클라이언트 요청 시 같이 전달된 파라미터를 변수에 저장
어떤 파라미터를 변수에 저장할지는 "name속성값"을 이용해 지정
[속성]
value
: input 태그의 name 속성값 (속성을 하나도 적지 않은 경우의 기본값)@RequestParam("inputEmail") == @RequestParam(value="inputEmail")
required
: 입력된 name 속성값이 필수적으로 파라미터에 포함되어야 되는지를 지정required=true / required=false (기본값 true 필수임)
defaultValue
: required가 false인 상태에서 파라미터가 존재하지 않을 경우의 값을 지정
400 – 잘못된 요청(Bad Request)
: 파라미터가 존재하지 않아 요청이 잘못됨.
required = false일 때 파라미터가 없으면 null
➡️ name 속성 값과 파라미터를 저장할 변수 이름을 동일하게 작성!
@RequestMapping("/login")
public String login( /* @RequestParam("inputEmail")int inputEmail, */
/* @RequestParam("inputPw")String inputPw, */
@RequestParam(value="inputName", required=false, defaultValue = "홍길동" )
String name ) {
logger.debug("email : " + inputEmail);
logger.debug("pw : " + inputPw);
logger.debug("name : " + name);
// email로 숫자만 입력 받는다고 가정
logger.debug( inputEmail + 100 + "");
// 리다이렉트 방법
return "redirect:/";
}
[@ModelAttribute를 매개변수에 작성하는 경우]
@ModelAttribute VO타입 변수명
➡️ 파라미터 중 name 속성 값이 VO의 필드와 일치하면
해당 VO 객체의 필드에 값을 세팅
❗@ModelAttribute 를 이용해서 객체에 값을 직접 담는 경우에 대한 주의사항 (반드시 필요!)
Getter는 JSP - EL 사용 시 반드시 필요!
@PostMapping("/login")
public String login( @ModelAttribute Member inputMember,
Model model,
RedirectAttributes ra,
HttpServletResponse resp,
HttpServletRequest req,
@RequestParam(value="saveId", required = false) String saveId ) {
// @ModelAttribute 생략 가능
// -> 커맨드 객체 (@ModelAttribute가 생략된 상태에서 파라미터가 필드에 세팅된 객체)
logger.info("로그인 기능 수행됨");
// 아이디, 비밀번호가 일치하는 회원 정보를 조회하는 Service 호출 후 결과 반환 받기
Member loginMember = service.login(inputMember);
.....