Controller의 리턴타입 (@ResponseBody)
String
이다.JSON
으로 반환시키는 방법을 주로 사용한다.jackson-databind API
를 사용하자.@ResponseBody
가 붙어있는 메소드의 return이 없다면, 제어권을 다시 요청한 곳(JSP)으로 넘긴다.@ResponseBody
가 붙어있는 메소드는 JSON 포맷으로 응답한다.// pom.xml에 적용!
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
// Controller.java
@RequestMapping("/")
public String main(){
return "single" // 페이지 return
}
// @ResponseBody라는 어노테이션이 있으면 jackson-databind API가 해당 객체를 JSON 포맷으로 변환시켜준다.
@RequestMapping("/board.do")
public @ResponseBody List<Board> board(){
List<Board> board = mapper.getBoard();
return board; // JSON 데이터 형식으로 변환(jackson)해서 응답한다.
}
// single.jsp
<script type="text/javascript">
$(document).ready(function(){
loadList();
});
function loadList(){
// 비동기통신 : 게시판 리스트 가져오기
$.ajax({
url : "boardList.do",
type : "GET",
dataType : "json",
success : makeView,
error : function(){ alert("error"); }
});
}
// 비동기통신 성공시 실행되는 함수
function makeView(data){
...
}
</script>
콜백함수 (여러 정의)
- 요청에 따른 응답된 데이터를 갖고 처리하는 함수
- 다른 함수의 파라미터로 사용되는 함수
- 어떠한 이벤트에 의해 호출되어지는 함수
jQuery.serialize()
form의 data를 한번에 서버에 보내주기 위해 사용하는 함수
const data = $("#FORMID").serialize(); // id=입력값&passwd=입력값&address=입력값 ...
@RestController
@ResponseBody
생략 가능@RequestMapping("/카테고리")
로 어노테이션 추가한다.