반응형

 @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를 브라우저로 전송합니다.

반응형

+ Recent posts