MVC02 - 강의내용 정리

mason.98·2022년 11월 23일
0

SPRING

목록 보기
4/4

인프런 스프 1탄 - MVC02


Controller의 리턴타입 (@ResponseBody)

  • 대부분은 JSP파일 이름/경로를 가르키기 때문에 String이다.
  • 객체를 리턴할 때에는JSON으로 반환시키는 방법을 주로 사용한다.
  • 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

  • 비동기 통신(AJAX)할 때 사용하는 컨트롤러
  • CRUD 작업을 할 때, 더욱 직관적으로 관리 가능
  • 위에서 사용했던 @ResponseBody 생략 가능
  • 작업하고자하는 카테고리를 @RequestMapping("/카테고리")로 어노테이션 추가한다.
profile
wannabe---ing

0개의 댓글