@RestController은 JSP 같은 뷰(View)를 별도로 만들지 않는다.
대신에 컨트롤러 메소드가 리턴한 데이터 자체를 클라이언트에게 전달한다.
클라이언트에 전달되는 데이터 종류(1)
1. 문자열
2. VO(Value Object)나컬렉션 형태의 자바 객체
(자바 객체가 전달되는 경우에는 자동으로 JSON으로 변환하여 처리하게 된다.)
클라이언트에 전달되는 데이터 종류(2)
(1) 문자열을 리턴하는 경우
메소드의 리턴 타입이 문자열 인경우-> 브라우저의 응답 프로토콜 body에 세팅된 문자열을 그대로 출력한다.
(2) VO 객체를 리턴하는 경우
VO 객체를 리턴하는 경우에는 VO객체를 JSON 데이터로 변환하여 응답하는 프로토콜 Body에 출력한다.
VO객체를 리턴하는 경우
Domain 생성 후-> 컨트롤러 생성하여 코딩 -> Data가 Json화 되어서 나온경우는 위의화면을 참고
Domain생성
package com.rubypaper.chapter01.domain;
import java.util.Date;
public class BoardVO {
private int seq;
private String title;
private String writer;
private String content;
private Date createDate = new Date();
private int cnt = 0;
public int getSeq() {
return seq;
}
public void setSeq(int seq) {
this.seq = seq;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
}
Controller생성
@GetMapping("/getBoard")
public BoardVO getBoard(){
BoardVO board = new BoardVO();
board.setSeq(1);
board.setTitle("테스트제목");
board.setWriter("테스터");
board.setContent("테스터 내용입니다.............");
board.setCreateDate(new Date());
board.setCnt(0);
return board;
}
(3) 컬렉션을 리턴하는 경우
-Controller의 메소드가 VO 객체 하나를 리턴 하는 것이 아니라 여러개의 VO객체를 배열/java.util.List 같은 컬렉션에 저장하여 리턴하는 경우가 있다. 이럴 경우 @RestController는 이런 경우에도 JSON으로 변환하여 처리해준다.
예제 코드
@GetMapping("/getBoardList")
public List<BoardVO> getBoardList(){
List<BoardVO> boardList = new ArrayList<BoardVO>();
for(int i =1;i<=10;i++){
BoardVO board = new BoardVO();
board.setSeq(i);
board.setTitle("제목"+i);
board.setWriter("테스터");
board.setContent(i+"번 테스터 내용입니다.............");
board.setCreateDate(new Date());
board.setCnt(0);
board.setTitle("<br>");
boardList.add(board);
}
return boardList;
}
반응형
'Spring' 카테고리의 다른 글
Springboot 자동설정 및 의존성 관리 (0) | 2019.11.14 |
---|---|
Lombok (0) | 2019.11.13 |
Springboot 폴더구조 (0) | 2019.11.10 |
Springboot 프로젝트 생성방법 ( Intellij ) (0) | 2019.11.09 |
JPA Enum 형태 관리방법-회원관리 (0) | 2019.11.08 |