유블로그

[Spring] controller : 여러가지 Request mapping 방법들 본문

Spring

[Spring] controller : 여러가지 Request mapping 방법들

yujeong kang 2020. 11. 1. 17:17
package com.hello.lecture._01request;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller("com.ssafy.hello._01request.Test")
@RequestMapping("/request")
public class Test {
	
	@RequestMapping("/test01.do")
	public String test01() {
		System.out.println("test01 호출됨");
		return "redirect:/index01.jsp";	// 이동할 페이지 주소 준다.
	}
	
	@RequestMapping("test02.do")
	public String test02() {
		System.out.println("test02 호출됨");
		return "redirect:/index01.jsp";
	}

	@RequestMapping(path="test03.do")
	public String test03() {
		System.out.println("test03 호출됨");
		return "redirect:/index01.jsp";
	}

	@RequestMapping(value = {"test04.do", "test05.do"})
	public String test045() {
		System.out.println("test045 호출됨");
		return "redirect:/index01.jsp";
	}

	// get 방식 처리
	@RequestMapping(value="test06.do", method = RequestMethod.GET)
	public String test06GET() {
		System.out.println("test06 GET 호출됨");
		return "redirect:/index01.jsp";
	}

	// post 방식 처리
	@RequestMapping(value="test06.do", method = RequestMethod.POST)
	public String test06POST() {
		System.out.println("test06 POST 호출됨");
		return "redirect:/index01.jsp";
	}

	// get 방식 처리
	@GetMapping(value="test07.do")
	public String test07GET() {
		System.out.println("test07 GET 호출됨");
		return "redirect:/index01.jsp";
	}
	
	// post 방식 처리
	@PostMapping(value="test07.do")
	public String test07POST() {
		System.out.println("test07 POST 호출됨");
		return "redirect:/index01.jsp";
	}
	
	
}

@Controller("com.ssafy.hello._01request.Test")

Test 라는 클래스(컨트롤러)가 여러 개일 경우 component-scan(빈 자동스캔) 할 때 이름이 같아서 컨트롤러 이름을 설정해줘야하는데, 이 때 패키지명과 클래스명을 합쳐서 이름을 주면 컨트롤러들을 관리하기 쉬워진다.

 

 

@RequestMapping("")

: 클래스 내 메소드 전체 value 앞에 "" 내용을 붙임.

예로 들면 write() 함수의 urlmapping이 /write 일 때 @RequestMapping("/article") 때문에

/article/write 로 매핑됨!

 

 

@ReqeustMapping(value="", method = ~~)

method 부분에 파라미터 전달방식 get/post 를 명시해주는데, 이것을 @GetMapping 또는 @PostMapping 으로 사용할 수 있다.

 

 

@RequestMapping 의 value 가 같을 때 get/post 방식 다르게 명시해놓으면 다른 함수 실행됨