package com.demo.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.demo.domain.SampleDTO;
@Controller
@RequestMapping("/sample/*") // 공통경로. sample로 시작하는 모든 주소를 의미함
public class SampleController {
private static final Logger Logger = LoggerFactory.getLogger(SampleController.class);
// 주소 : /sample/doA. jsp파일명
@RequestMapping("doA")
public void doA() {
Logger.info("/sample/doA");
}
// 주소 : /sample/doB. jsp파일명
@RequestMapping("doB")
public void doB() {
Logger.info("/sample/doB");
}
// /sample 로 싲가하는 주소와 요청방식이 존재하지 않으면, 아래 주소가 호출됨
// 아래 주소가 없다면 오류로 요청방식 GET은 지원하지 않는다고 나옴
@RequestMapping("")
public void basic() {
Logger.info("basic called...");
}
// /sample/ + /basicForm -> 인식됨
@RequestMapping("/basicForm")
public void basicForm() {
Logger.info("basicForm called...");
}
// 매핑주소 여러개를 생성하여, 하나의 메서드 호출
@RequestMapping(value = {"/bsciaA", "/basicB"})
public void basicGet() {
Logger.info("basicOnly called...");
}
// /sample/basicForm. 기본요청방식이 get, post 둘다 지원
// 아래는 post만 지원하겠다는 조건
@RequestMapping(value = "basicTwoMethod", method = RequestMethod.POST)
public void basicTwoMethod() {
Logger.info("basicTwoMethod called...");
}
// spring framework 4.3이후 get요청방식 주소설정. @PostMapping : post요청방식 주소설정
@GetMapping("/basicOnlyGet")
public void basicGet2() {
Logger.info("basicGet2 called...");
}
// 클라이언트에서 보내온 데이터를 서버(스프링)에서 참조한느 방법
// 주소 : http://localhost:9090/sample/ex1?name=홍길동&age=100
// 1) 클래스를 사용 - SampleDTO dto
// 주소 : http://localhost:9090/sample/ex02?name=홍길동&age=100
// 2) 각각의 필드를 사용 - String name, int age
@GetMapping("/ex01") // http://localhost:9090/sample/ex01?name=홍길동&age=100
public String ex01(SampleDTO dto) {
Logger.info(dto.toString());
return "/sample/ex01"; // jsp 파일명
}
// 참고. 파라미터가 기본 데이터타입은 값을 제공하지 않으면, 에러발생
@GetMapping("/ex02") // http://localhost:9090/sample/ex02?name=홍길동&age=100
public String ex02(String name, int age) {
Logger.info("이름은 ? " + name);
Logger.info("나이는 ? " + age);
return "/sample/ex02"; // jsp 파일명
}
// ?
@GetMapping("/ex0201") // http://localhost:9090/sample/ex0201?name=홍길동&age=100
public String ex0201(@RequestParam("uname") String name, @RequestParam("uage") int age) {
Logger.info("이름은 ? " + name);
Logger.info("나이는 ? " + age);
return "/sample/ex0201"; // jsp 파일명
}
}
댓글남기기