[spring] @RequestParam & @PathVariable & @ModelAttribute & @RequestBody & @RequestPart

공수정·2021년 10월 27일
0

spring

목록 보기
4/32

@RequestParam

@RequestParam란

웹 요청 매개변수에 바인딩할때 사용하는 어노테이션, URI 뒤에 쿼리스트링으로 들어온 변수들을 변수에 바인딩 할 때 사용

예시

url : localhost:8081?param=1

사용 방법

: 해당 url의 controller 메서드의 매개변수 부분에서 사용

	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public String list(Locale locale,  Model model,@RequestParam("param")int pageNum) {
		...
	}

String뿐만 아니라 int등으로 자동 타입 변환

속성

이름자료형설명
valueStrnigurl에 값이 넘어오는 변수 명 지정(다른 속성을 사용하지 않을 때에는 value="변수명"이라고 적지 않고, ("변수명")이라고만 적어도 e됨
defaultValueStringurl을 통해서 값이 넘어오지 않았을 경우, 기본값 설정
requiredboolean필수 파라미터인지에 대한 속성 값, 기본적으로는 true로 되어있어서 해당 값이 넘어오지 않으면 400 error를 발생
nameString바인딩할 경로 변수의 이름,들어온 값을 저장할 변수 이름

@PathVariable

@PathVariable란

메소드 매개변수가 URI 템플릿 변수에 바인딩되어야 함을 나타내는 주석
URI에 있는 내용이 변수에 바인딩 되어야할 때 사용하는 어노테이션

예시

url : localhost:8081/param/1

사용 방법

: 해당 url의 controller 메서드의 매개변수 부분에서 사용

@RequestMapping(value = "/{word}/{num}", method = RequestMethod.GET)
public String content(Locale locale,@PathVariable String word,@PathVariable int num , Model model) {
	...
}

속성

이름자료형설명
nameString바인딩할 경로 변수의 이름,들어온 값을 저장할 변수 이름
requiredboolean경로 변수가 필요한지에 대한 여부
valueStringname에 대한 별칭,들어오는 변수이름

@RequestBody

@RequestBody란

웹 요청의 본문에 바인딩되어야 할 때 사용하는 어노테이션, 주로 json 데이터를 그대로 dto에 담을때 사용

사용 방법

속성

이름자료형설명
requiredboolean경로 변수가 필요한지에 대한 여부

@RequestPart

@RequestPart

"multipart/form-data" 요청의 일부를 메서드 인수와 연결하는 데 사용하는 어노테이션

사용 방법

속성

이름자료형설명
nameString바인딩할 경로 변수의 이름,들어온 값을 저장할 변수 이름
requiredboolean경로 변수가 필요한지에 대한 여부
valueStringname에 대한 별칭,들어오는 변수이름

@ModelAttribute

@ModelAttribute

메서드 매개변수 또는 메서드 반환 값을 웹 보기에 노출된 명명된 모델 속성에 바인딩하는 어노테이션

@RequestMapping 메서드가 있는 컨트롤러 클래스에 대해 지원

사용 방법

속성

이름자료형설명
nameString바인딩할 경로 변수의 이름,들어온 값을 저장할 변수 이름
bindingboolean메서드 매개 변수 또는 메서드에서 반환된 속성에서 직접 데이터 바인딩을 활성화 할 것인지 비활성화 할 것인지에 대한 값
valueStringname에 대한 별칭,들어오는 변수이름

참고
1. spring annotation docs

profile
계속해서 공부하는 개발자입니다 :)

0개의 댓글