맵핑한 메서드 매개변수에 아무것도 안 적을시 매개변수 앞에 @RequestParam(name="year" required=false)가 생략된것.
매개변수 앞에 @RequestParam만 붙일시 @RequestParam(name="year",required=true)랑 똑같다.
매개변수 앞에 @RequestParam(required=false,true) 이렇게 required 값만 적어줄수도 있다.에러가 발생할 시 서버측인지 클라이언트측인지 갈리게 된다.
@RequestParam(required=false,defaultValue="1") required=false일 때는 defaultValue 값을 줘서 500번대 에러를 피해주는게 좋다.null뿐만 아니라 빈문자열에도 defaultValue가 들어간다.
매개변수로 참조형을 지정할시 자동으로 model에 값이 저장되며 view에서 pageContext.request.model 혹은 requestScope.model 이런식으로 접근이 가능하다.
${mode}이렇게 적는것도 가능
참조형 매개변수 앞에 아무것도 안 적을시 @ModelAttribute()가 생략되는 것이다.매개변수의 타입의 소문자가 key로 저장된다.
반환타입 앞에서 붙일수 있다.이러면 return값이 자동 저장됨
public @ModelAttribute("yoil") char getYoil()
이런식으로
결국,컨트롤러 매개변수 앞에는 두개가 붙을수 있다.@RequestParam @ModelAttribute
기본형 매개변수 앞에는 @RequestParam이 자동으로 붙으며 view에서 ${param.id}로 접근할수 있다.
참조형 매개변수 앞에는 @ModelAttribute가 자동으로 붙으며 view에서 ${id} 이렇게 접근할수 있다.