Controller annotation

HU·2022년 2월 7일
0
post-custom-banner

컨트롤러의 @어노테이션들을 알아보자.


@PathVariable

ex)

@GetMapping(value="board/{email}/{pw}")
public void testMethod(@PathVariable("email") String id, 
						@PathVariable String pw){
}

@RequestParam

ex)

@GetMapping(value="board")
public void testMethod(@RequestParam String id, 
						@RequestParam String pw){
}

1개의 파라미터를 받을 때 사용한다.
필수 여부가 true이므로 반드시 파라미터가 전송되어야 한다.
다만 required 값을 false 혹은 defaultValue 를 통해서 400 에러를 해결할 수 있다.



@RequestBody

ex)

@PostMapping(value="/test")
public void testMethod(@RequestBody TestVo testVo){

}

Json 형태의 내용을 Object로 변환시켜준다.

form으로 submit해서 받으니까 에러 발생

RequestBody로 받을 때 전송하는 쪽에서 JSON.stringify 형태로 보내야 Controller에서 받아줄 수 있다.

ex)

$.ajax({
	url: "/test",
	type: "post",
	data: JSON.stringify(inputData),
	contentType: "application/json; charset=UTF-8",
	success: function(data) {
			
	}
});


@ResponseBody

서버 -> 클라이언트로 자바 객체를 전송할 때 사용한다.

Controller 클래스에서 ajax 요청을 받아 Json/Xml 형태로 객체 데이터를 반환할 경우에는 해당 메소드에 @ResponseBody 어노테이션을 추가한다.

ex)

@ResponseBdoy
@GetMapping(value="board/{email}")
public TestVo testMethod(@PathVariable("email") String id, 
						@RequestParam String pw){
	TestVo testVo = new TestVo();
    return testVo;
}
profile
지식 쌓기
post-custom-banner

0개의 댓글