@RequestBody 그리고 @RequestParam
@RequestBody = 넘어온 파라미터를 자바 객체로 받아준다.
@RequestParam = 넘어온 파라미터의 name을 받는다.
주로 DTO없이 MAP으로 할때 씀(이땐 생략 불가)
example: @RequestParam Map<String, String> map
@RequestBody로 받기 위해서
조건1 : 컨트롤러의 매개변수를 자바객체로 받는다.
조건2 : 프론트에서 제이슨으로 넘길 경우 JSON.stringify()를 쓴다.
JSON.stringify??
자바스크립트 값을 json으로 바꿔준다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="https://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
$("button").on("click",function(e){
e.preventDefault();
var formObj = $("form").serialize();
console.log(formObj);
$.ajax({
url:"/bajax",
data :JSON.stringify({
"id": "soup",
"pwd" : "billein",
"email" : "shsondd",
"tt":formObj
}),
contentType: 'application/json',
dataType : "json",
type : "post",
error:function(error){
alert(error+"_"+formObj);
},
});
});
});
</script>
<body>
<form action="">
<input type="text" name="t">
<button>전송</button>
</form>
</body>
</html>
@PostMapping("/bajax")
public void bajax(@RequestBody User user){
System.out.println("/b post 컨트롤러");
String id = user.getId();
String pwd = user.getPwd();
String email = user.getEmail();
String tt = user.getTt();
System.out.println(id);
System.out.println(pwd);
System.out.println(email);
System.out.println(tt);
}
콘솔:
/b post 컨트롤러
soup
billein
shsondd
t=jiseong
Author And Source
이 문제에 관하여(@RequestBody 그리고 @RequestParam), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hth9876/RequestBodyRequestParam저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)