반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Stack
- preparedstatement
- 스프링부트로그
- JSP
- 오라클
- 국비학원
- MVC
- SpringBoot
- Heap
- 서블릿
- 객체 주소
- Thymeleaf
- Java
- 스프링
- db
- 비전공
- JDBC
- 자바
- JavaScript
- Statement
- scanner
- 타임리프
- 스프링로그
- List에 객체 같은 값
- 코딩
- Session
- Servlet
- Spring
- CachingOperationNameGenerator
- 자바스크립트
Archives
- Today
- Total
sin prisa pero sin pausa
[Spring] @ResponseBody 스프링 컨트롤러 ajax 응답받기 본문
반응형
스프링 컨트롤러에서 ajax에 대한 응답을 반환하려면 어떻게 해야할까?
스프링 @Controller는 forward와 redirect만 가능하기 때문에
화면의 일부만 바뀌는 ajax와 같은 비동기 통신이라면 다른 방법으로 반환을 해줘야 한다.
여기서 쓸 수 있는 어노테이션이 바로 @ResponseBody
더보기
[해석]
@ResponseBody는 웹 reponse body로 값을 반환하는 주석이다.
뷰 이름으로 해석되지 않으며 HTTP 메시지 변환기를 사용하여
요청 HTTP 헤더의 콘텐츠 유형을 기반으로 반환 값을 HTTP 응답 본문으로 변환한다.
=> ViewResolver가 결합되어 response header에 담기는 view 주소가 아닌
반환값 그대로의 값을 response body에 담아서 보내준다는 것이다.
[예시]
1. Controller 코드
@ResponseBody
@RequestMapping(value="idDupCheck", method=RequestMethod.POST)
public int signUp(Member member) {
int result = service.signUp(member);
return result;
}
2. ajax 코드
$.ajax({
url : "signUp",
data : {"member" : member,},
type : "post",
success : function(result){
if(result > 0) { // 회원가입 성공
} else { // 아이디가 중복되지 않는 경우
}
},
error: function(e){ // 통신 실패 시
}
})
더보기
=> 밑의 ajax 코드는 회원가입의 결과값인 int result(1이나 0)을 결과값으로 받아야 하기 때문에
signUp과 매핑된 Controller에서는 @ResponseBody 를 이용하여 결과값을 그대로 반환해줘야 한다.
반응형
'더 알아보고 싶은데?' 카테고리의 다른 글
면접 준비1 (0) | 2021.08.10 |
---|---|
[Spring] Web Socket (0) | 2021.07.23 |
[Spring] @ControllerAdvice, @ExceptionHandler를 이용해 예외처리하기 (0) | 2021.07.20 |
[Spring] @SessionAttributes (0) | 2021.07.20 |
[Spring] RedirectAttributes (0) | 2021.07.20 |