import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.demo.domain.ProductVO;
@Controller
public class SampleController5 {
private static final Logger Logger = LoggerFactory.getLogger(SampleController5.class);
@RequestMapping("doJSON1") //주소설정
public @ResponseBody String doJSON1() {
return "Hello World";
}
// 400번 에러 클라이언트, 500번 에러 서버
//에러발생 : No converter found for return value of type: class com.demo.domain.ProductVO
//리턴 값을 변환 시킬수없다.
//객체를 리턴값으로 사용하기 위해서는 필요한 라이브러리 추가를 해야한다.
//리턴 값의 객체가 JSON으로 변환하기위해서는 jackson-databind 라이브러리를 사용해야 한다.
// pom.xml에 jackson-databind dependecy 구문을 삽입해야한다.
// 백그라운에서 동작이된다.
@RequestMapping("/doJSON2")
public @ResponseBody ProductVO doJSON2() {
ProductVO vo = new ProductVO("상품A", 300000);
return vo;
}
}
// 테이블의 구조를 참조하여, 설계한다.
// 데이터관리를 위한 클래스. VO : Value Object . DTO : data Transfer Object
public class ProductVO {
private String productName; // 상품명
private double price; // 가격
public ProductVO(String productName, double price) {
this.productName = productName;
this.price = price;
}
/*스프링에서의 VO클래스는 getter/setter 메서드를 반드시 구성해야 한다.*/
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}