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
- 구간합구하기
- SQL
- function test
- @AllArgsConstructor
- 2차원배열 구간합
- 합배열
- 구간합
- Bean LifecCycle
- 마리아DB 쿼리 로그
- json
- 생성자
- 백준 1235번
- pseudo-code
- @NoArgsConstructor
- 백준 11660번
- 백준
- 슈더코드
- interrupted()
- InterruptException
- MariaDB Query Log
- jquery
- 백준 11659번
- 자바 람다식
- Java
- ajax
- this와 this() 차이
- select
- map()
- this
- 상속과 참조
Archives
- Today
- Total
평범한 연구소
[Spring] 스프링에서 AJAX 사용하기 (@ResponseBody) 본문
@ResponseBody
- 반환 객체를 HTTP 응답으로 전송하는 어노테이션.
- 메소드에서 반환하는 자바 객체를 HTTP 응답 몸체로 변환한다.
- 자바 객체를 HTTP 요청의 body 내용으로 매핑하는 역할. (AJAX-JSON형식에서 필수!)
- HttpMessageConverter를 통해 HTTP 응답 스트림으로 변환.
- @RestController 에는 기본적으로 @ResponseBody 가 적용되서 메소드 레벨에서 추가하지 않아도 된다.
- 스프링 4.0부터는 MappingJackson2HttpMessageConverter를 이용하여 자바 객체를 JSON으로 변환하거나 JSON을 자바 객체로 변환한다.
- pom.xml에 jackson 의존성을 추가한다.
<properties>
...
<org.json-version>20220924</org.json-version>
</properties>
<dependencies>
...
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-version}</version>
</dependency>
<!-- JSON -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${org.json-version}</version>
</dependency>
</dependencies>
@ResponseBody 활용 예제
- json 형식(dataType)으로 AJAX
function userIdCheck() {
...
let url = "${pageContext.request.contextPath}/member/userIdCheck";
let query = "userId=" + userId;
$.ajax({
type:"POST"
,url:url
,data:query
,dataType:"json"
,success:function(data) {
let passed = data.passed;
if(passed === "true") {
let str = "<span style='color:blue; font-weight: bold;'>" + userId + "</span> 아이디는 사용가능 합니다.";
$(".userId-box").find(".help-block").html(str);
$("#userIdValid").val("true");
} else {
let str = "<span style='color:red; font-weight: bold;'>" + userId + "</span> 아이디는 사용할수 없습니다.";
$(".userId-box").find(".help-block").html(str);
$("#userId").val("");
$("#userIdValid").val("false");
$("#userId").focus();
}
}
});
}
- Map → JSON으로 변환하여 반환
@RequestMapping(value = "userIdCheck", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> idCheck(@RequestParam String userId) throws Exception {
String p = "true";
Member dto = service.readMember(userId);
if (dto != null) {
p = "false";
}
Map<String, Object> model = new HashMap<>();
model.put("passed", p);
return model;
}
'Spring Framework' 카테고리의 다른 글
[Spring] 시큐리티 Security (0) | 2022.12.03 |
---|---|
[Spring] 웹스토리지(로컬 스토리지, 세션 스토리지) vs 쿠키 vs 세션 (0) | 2022.12.01 |
[Spring] MVC (0) | 2022.11.13 |
[Spring] AOP (관점 지향 프로그래밍) (0) | 2022.11.12 |
[Spring] 어노테이션 (Annotation) (0) | 2022.11.10 |