json 데이터를 컨트롤러에서 받을경우..
- 작성자 :
- 권*천
- 작성일 :
- 2016-07-04 19:14:50
- 조회수 :
- 3,597
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요
ajax를 통해 json 데이터를 컨트롤러에서 받을경우
첨부파일과 같이 오류가 발생하는데요 해결방법좀 부탁드립니다.
감사합니다.
-jsp
var url = "${pageContext.request.contextPath}/user/fbLogin.do";
$.ajax({
type: "POST",
url: url,
data: userInfo,
contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success:function( html ) {
$( "#results" ).append( html );
}
});
컨트롤러
@ResponseBody
@RequestMapping("/user/fbLogin.do")
public String fbLogin(@RequestBody FbUserInfo fbUserInfo) throws Exception {
System.out.println(fbUserInfo);
//이미 가입된 이메일인지 체크
//가입된 이메일이 아니면 저장
//세션에 저장
return "egovframework/com/usr/login_signin_info";
}
-VO
public class FbUserInfo {
private String id;
private String name;
private String email;
private String first_name;
private String last_name;
private String gender;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
ajax를 통해 json 데이터를 컨트롤러에서 받을경우
첨부파일과 같이 오류가 발생하는데요 해결방법좀 부탁드립니다.
감사합니다.
-jsp
var url = "${pageContext.request.contextPath}/user/fbLogin.do";
$.ajax({
type: "POST",
url: url,
data: userInfo,
contentType : "application/x-www-form-urlencoded; charset=UTF-8",
success:function( html ) {
$( "#results" ).append( html );
}
});
컨트롤러
@ResponseBody
@RequestMapping("/user/fbLogin.do")
public String fbLogin(@RequestBody FbUserInfo fbUserInfo) throws Exception {
System.out.println(fbUserInfo);
//이미 가입된 이메일인지 체크
//가입된 이메일이 아니면 저장
//세션에 저장
return "egovframework/com/usr/login_signin_info";
}
-VO
public class FbUserInfo {
private String id;
private String name;
private String email;
private String first_name;
private String last_name;
private String gender;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
A
안녕하세요. 표준프레임워크센터입니다.
@ResponseBody의 경우 다른 방식(@RequestParam, @ModelAttribute)과는 다르게)request의 파라미터를 하나씩 받아서 완성하는 방식이 아니라 request의 json이나 xml body 전체를 inputstream 형태로 읽어들이는 방식입니다.
따라서 일반적인 형식으로 보낼때는 header content-type: application/x-www-form-urlencoded; charset=UTF-8로 보내면 파라미터를 제대로 읽지만,
json형태로 보내서 @ResponseBody로 읽을때는 content-type:application/json으로 해야 inputstream을 읽어들입니다.
예시를 올려드리니 참조해보시기 바랍니다.
e.g.
$.ajax({
type: "POST",
url: "someurl",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{id: '" + someId + "'}",
success: function(json) {
}};
p.s. 하단의 링크는 참조링크입니다.
http://stackoverflow.com/questions/6802142/spring-mvc-3-json-problem
http://java.ihoney.pe.kr/283
감사합니다.
@ResponseBody의 경우 다른 방식(@RequestParam, @ModelAttribute)과는 다르게)request의 파라미터를 하나씩 받아서 완성하는 방식이 아니라 request의 json이나 xml body 전체를 inputstream 형태로 읽어들이는 방식입니다.
따라서 일반적인 형식으로 보낼때는 header content-type: application/x-www-form-urlencoded; charset=UTF-8로 보내면 파라미터를 제대로 읽지만,
json형태로 보내서 @ResponseBody로 읽을때는 content-type:application/json으로 해야 inputstream을 읽어들입니다.
예시를 올려드리니 참조해보시기 바랍니다.
e.g.
$.ajax({
type: "POST",
url: "someurl",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{id: '" + someId + "'}",
success: function(json) {
}};
p.s. 하단의 링크는 참조링크입니다.
http://stackoverflow.com/questions/6802142/spring-mvc-3-json-problem
http://java.ihoney.pe.kr/283
감사합니다.