반응형
@RequestBody
@RequestBody를 사용하면 브라우저에서 전달되는 JSON 데이터를 객체로 자동 변환 해줍니다.
JSONTest.jsp
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
32
33
34
35
36
37
38
39
40
41
42
43
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HOME</title>
<script src = "http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
$("#checkJson").click(function(){
var member = {
id:"park",
name:"박하나",
pwd:"1234",
email:"park@test.com"
};
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/test/info",
contentType:"application/json",
data:JSON.stringify(member),
success:function(data, textStatus){
alert("전송 성공");
},
error:function(data, textStatus){
alert("전송 실패");
},
complete:function(data, textStatus){
}
});
});
});
</script>
</head>
<body>
<input type="button" id="checkJson" value="회원 정보 보내기"><br><br>
<div id="output"></div>
</body>
</html>
|
cs |
TestController
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
|
package com.myspring.pro29.ex01;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test/*")
public class TestController {
static Logger logeer = LoggerFactory.getLogger(TestController.class);
@RequestMapping(value="/info", method = RequestMethod.POST)
public void modify(@RequestBody MemberVO vo) {
System.out.println("vo : " + vo.toString());
logeer.info(vo.toString());
}
}
|
cs |
HomeController
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
|
package com.myspring.pro29;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
return "JSONTest";
}
}
|
cs |
MemberVO
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
32
33
34
35
36
37
38
39
40
41
|
package com.myspring.pro29.ex01;
public class MemberVO {
private String id;
private String pwd;
private String name;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "MemberVO [id=" + id + ", pwd=" + pwd + ", name=" + name
+ ", email=" + email + "]";
}
}
|
cs |
회원정보 보내기 버튼을 클릭합니다.
전송 성공 창이 뜨고 console 창을 확인하면 전송된 data를 확인할 수 있습니다.
@ResponseBody
JSP가 아닌 텍스트나 JSON으로 결과 전송이 가능하다.
@ResponseBody는 메서드 호출 시 데이터를 전송하도록 설정합니다.
메서드 호출 시 데이터를 전송하도록 설정합니다.
Map 데이터를 브라우저로 전송합니다.
메서드 호출 시 home.jsp를 브라우저로 전송합니다.
반응형
'코딩 기록 > JSP' 카테고리의 다른 글
[JSP] Spring 다중 파일 업로드 하기 (2) | 2021.06.01 |
---|---|
[JSP] ResponseEntity 사용해서 응답하기 (0) | 2021.05.28 |
[JSP] @PathVariable 사용하기 (0) | 2021.05.28 |
[JSP] @RestController 이용해 컬렉션 객체 전달하기 (0) | 2021.05.28 |
[JSP] @RestController 이용해 VO 객체 전달하기 (0) | 2021.05.27 |