restController
RestController 정리
@RestController
- Controller 어노테이션은 view를 반환다
- RestController 어노테이션은 return 시 Json, xml 등 객체를 반환한다
json lib 추가
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
Member.java
- model
package kosta.model; public class Member { private String name; private String email; public Member(){} public Member(String name, String email) { super(); this.name = name; this.email = email; } 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; } @Override public String toString() { return "Member [name=" + name + ", email=" + email + "]"; } }
index.html
- index.html 접속 시 client url로 이동한다
JsonController.java
- JsonController에서 client view를 전달한다. 매핑에 의해서 view/client.jsp 로 치환한다
@Controller public class JsonController { @RequestMapping("/client") public String client(){ return "client"; } }
client.jsp
- client.jsp에서 페이지 로드와 동시에 $(function())함수가 호출된다
- 이 때 getJSON 함수로 spring_json url로 이동을 요청한다
- ajax 결과 json 데이터를 출력한다
ListController.java
- ListController에 @RestController가 선언되어있다. 그래서 모든 함수의 return 값은 view가 아닌 데이터이다
@RestController
public class ListController {
@RequestMapping("spring_json")
public List<Member> spring_json(){
List<Member> list = new ArrayList<>();
list.add(new Member("백종원", "aa@aa.com"));
list.add(new Member("조보아", "bb@bb.com"));
return list;
}
}