상황에 따라 handler 메소드의 매개변수 이름들을 request parameter와 일치시켜주기 어려울 때 @RequestParam을 사용하여, request parameter와 다른 이름의 매개변수로 받을 수 있다.
- 예제코드
//만약 request parameter 의 name 과 매개변수가 같을 수 없는 상황이면
public void findMember(
@RequestParam("id") String userid, // id 란 name 의 parameter 값을 userid 매개변수가 받는다
@RequestParam("name") String username,
Model model) {
System.out.println("member/find : id ="+userid+" name= "+username);
model.addAttribute("id", userid);
model.addAttribute("name", username);
}
@RequestParam + Map<namve, value>
위의 경우 id 값이 없거나 불가능하면 에러가 발생.
-> 에러를 피하는 법
- @RequestParam(value="text", required=false, defaultValue="0")
- 예제코드
-
public void findMember( @RequestParam(value= "id", required=false, defaultValue="0") String userid, // id 란 name 의 parameter 값을 userid 매개변수가 받는다 @RequestParam("name") String username, Model model) { System.out.println("member/find : id ="+userid+" name= "+username); model.addAttribute("id", userid); model.addAttribute("name", username); }
-
- 예제코드
- @RequestParam Map<name, value>
- 예제코드
-
+ Map<> 으로도 다량의 parameter를 받을 수 있다. 하지만, 개발한 사람 외에는 유지보수가 어려움. => 커맨더 사용 방식 추천// Map<>.get()의 값이 없으면 null을 리턴하기 때문에 에러 안남. public void findMember( @RequestParam Map<String, String> map, Model model) { System.out.println("member/find : id ="+map.get("id")+" name= "+map.get("name")); model.addAttribute("id", map.get("id")); model.addAttribute("name", map.get("name")); }
-
- 예제코드
'웹개발 > Spring' 카테고리의 다른 글
Maven 이란? (0) | 2021.11.29 |
---|---|
커맨드 객체(Command Object) (0) | 2021.11.29 |
Request Parameter (0) | 2021.11.29 |
redirect, RedirectAttributes (0) | 2021.11.29 |
Servlet, JSP, JavaScript, Spring의 redirect, forward 총정리 (0) | 2021.11.29 |