■ @RequestMapping
@RequestMapping(value = "login.me", method = RequestMethod.POST)
- RequestMapping이라는 어노테이션을 붙이면 HandlerMapping곳에 등록이 된다.
- () 안에 여러 개의 속성을 추가할 수 있다.
■ 스프링에서 parameter(요청시 전달값)을 받는 방법
● HttpServletRequest request를 이용해서 전달받기(기존방식 그대로)
- 해당 메서드의 매개변수로 HttpServletRequest를 작성해 놓으면 스프링 컨테이너가 해당 메서드를 호출할 때 자동으로 request객체를 생성해서 매개변수로 주입해 준다.
ex)
public String loginMember(HttpServletRequest request) {
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
return "main";
}
● @RequestParam어노테이션을 이용하는 방법
- 기존의 request.getParameter("키")로 뽑는 역할을 대신 수행해 주는 어노테이션
- input 속성의 value로 jsp에서 작성했던 name값을 입력해 주면 알아서 매개변수로 값을 담아 온다.
- 만약 넘어온 값이 비어있다면 defaultValue로 설정이 가능하다.
ex)
@RequestMapping(value = "login.me", method = RequestMethod.POST) public
String loginMember(
@RequestParam(value="userId", defaultValue="m") String userId,
@RequestParam(value="userPwd") String userPwd ) {
System.out.println("userId : " + userId );
System.out.println("userPwd : " + userPwd );
return "main";
}
● @RequestParam어노테이션을 생략하는 방법
- 단, 매개변수의 변수명을 jsp에서 전달한 파라미터의 name속성값과 일치시켜줘야 한다.(defaultValue사용불가)
ex)
@RequestMapping(value = "login.me", method = RequestMethod.POST)
public String loginMember(
String userId,
String userPwd
) {
System.out.println("userId : " + userId );
System.out.println("userPwd : " + userPwd );
return "main";
}
● 커맨트 객체 방식
- 해당 메서드의 매개변수로 요청 시 전달값을 담고자하는 VO클래스타입의 변수를 세팅하고 요청시 전달값의 name속성값이 VO클래스의 담고자 하는 필드명과 일치시켜서 작성한다.
- 스프링컨테이너에서 해당 객체를 "기본 생성자"로 호출해서 생성 후 내부적으로 전달받은 key값에 해당하는 setter메서드를 찾아서 전달한 값을 필드에 담아준다. 따라서 반드시 name속성값(key값)과 VO객체의 필드명이 일치해야 한다.
ex)
@RequestMapping(value = "login.me", method = RequestMethod.POST)
public String loginMember(
Member m
) {
System.out.println("userId : " + m.getUserId() );
System.out.println("userPwd : " + m.getUserPwd() );
return "main";
}
'Spring' 카테고리의 다른 글
Spring (6) 비동기 요청하기 (0) | 2023.08.03 |
---|---|
Spring(5) 예외처리 방법(중복사용 가능) (0) | 2023.08.03 |
Spring (4) 요청 처리 후 "응답 데이터"를 담고 응답페이지로 url 재요청하기 (0) | 2023.08.03 |
Spring (2) 객체 생성 (0) | 2023.08.01 |
Spring (1) lombok (0) | 2023.08.01 |