@RequestParam
annotation을 사용하여 서블릿 요청 매개변수(즉, 쿼리 매개변수 또는 양식 데이터)를 컨트롤러의 메서드 인수에 바인딩할 수 있습니다. 다음 예에서는 그 방법을 보여줍니다.
@Controller
@RequestMapping("/pets")
public class EditPetForm {
// ...
@GetMapping
public String setupForm(@RequestParam("petId") int petId, Model model) { // (1)
Pet pet = this.clinic.loadPet(petId);
model.addAttribute("pet", pet);
return "petForm";
}
// ...
}
(1) @RequestParam
을 사용하여 petId
를 바인딩합니다.
기본적으로 이 annotation을 사용하는 메서드 매개 변수는 필수이지만 @RequestParam
annotation의 required
플래그를 false
로 설정하거나 java.util.Optional
래퍼로 인수를 선언하여 메서드 매개 변수가 선택 사항임을 지정할 수 있습니다.
대상 메소드 매개변수 type이 String
이 아닌 경우 유형 변환이 자동으로 적용됩니다. type 변환을 참조하세요.
인수 유형을 배열이나 목록으로 선언하면 동일한 매개변수 이름에 대해 여러 매개변수 값을 확인할 수 있습니다.
@RequestParam
annotation이 annotation에 지정된 매개변수 이름 없이 Map<String, String>
또는 MultiValueMap<String, String>
으로 선언되면 지정된 각 매개변수 이름에 대한 요청 매개변수 값으로 맵이 채워집니다.
@RequestParam
사용은 선택 사항입니다(예: 속성 설정). 기본적으로 단순 값 유형(BeanUtils#isSimpleProperty에 의해 결정됨)이고 다른 인수 확인자에 의해 해결되지 않는 모든 인수는 @RequestParam
으로 annotation이 달린 것처럼 처리됩니다.