본문 바로가기

웹프로그래밍/spring~~

Spring 으로 ajax 사용 할 때~

https://writemylife.tistory.com/43

ajax 기초 설명은 위에 글을 참고 해 주세요~

https://writemylife.tistory.com/98

spring security를 사용하고 있을 때의 ajax 사용은 위에 글을 참고 해 주세요~

 

Spring으로 ajax를 url mapping을 해서 controller에서 요청을 받아 data값을 parameter로 받을 때, 요청을 처리하고 서버로 반환 할 때 사용하는 annotation에 대해 정리 하려고 합니다.

 

@ModelAttribute 

1.파라미터로 넘겨 준 타입의 오브젝트를 자동으로 생성 한다

2.@ModelAttribute 뒤에 써 있는 클래스는 bean class 이어야 한다.

3.그리고 getter, setter가 명명 규칙에 맞게 만들어져 있어야 한다.

4.생성된 오브젝트에 HTTP로 넘어 온 parameter들을 setter를 이용해 자동으로 바인딩 한다.

5.@ModelAttribute("NAME") 형태로 붙일 경우 .jsp파일에서 jstl(jsp Standard Tag Library)에 의해서 ${(NAME.property) 형태로 객체의 값을 사용 할 수 있게 된다.

 

@ResponseBody

- 자바 객체를 HTTP의 body에 넣어 전달

ajax는 HTTP 요청이므로 응답도 HTTP로 해야 한다. 그래서 ajax와 mappin 되어 있는 controller 메소드에 @ResponseBody를 안 붙이면 success 핸들러로 가지 못하고 error 핸들러로 가게 될 것입니다.

 

cf) @Controller가 아니라 @RestController를 사용한 controller라면 리턴값에 HTTP 의 body에 넣어 전달 되므로 @ResponseBody를 붙일 필요가 없습니다. 

 

반응형