[TIL] 2020.08.20_TIL

TO_DO

  • [수업] spring-mvc 복습

@RequestMapping을 이용한 요청 매핑

  • 클라이언트가 url을 통해 보낸 요청을 어떤 메서드가 처리할지 여부를 결정하는 것이 바로 “@RequestMapping”

1. @RequestMapping을 통한 경로 지정

@Controller
public class MethodController {
	@RequestMapping(value="/method/method.do")
	public String callGet() {
		...
	}
}

2. 클래스와 메서드에 @RequestMapping 적용하기

  • 컨트롤러와 메서드에 @RequestMapping 어노테이션을 모두 사용하면, 클래스에 적요한 값과 메서드에 적용한 값을 조합해서 경로를 설정한다.
@Controller
@RequestMapping(value="/method")
public class MethodController {
	@RequestMapping(value="/get")
	public String callGet() {
		...
	}
	@RequestMapping(value="/post")
	public String callPost() {
		...
	}
}

3. HTTP 전송 방식 지정

  • 로그인이나 게시글 데이터를 작성하는 경우, <form> 태그에서 method 속성값을 “post”로 지정하는 것이 일반적
  • @RequestMapping 어노테이션은 method 속성을 이용해서 메서드에서 처리할 전송 방식 지정이 가능
  • 동일한 경로를 값으로 갖고 method 속성만 다르게 설정이 가능
  • 아래의 두가지 방법 모두 사용이 가능

방법1.

@Controller
public class MethodController {
	@RequestMapping(value="/method/method.do", 
                  method=RequestMethod.GET)
	public String callGet() {
		return "method/methodForm";
	}
	@RequestMapping(value="/method/method.do", 
                  method=RequestMethod.POST)
	public String callPost() {
		return "method/methodProcess";
	}
}

방법2.

@Controller
@RequestMapping(value="/method/method.do")
public class MethodController {
	@RequestMapping(method=RequestMethod.GET)
	public String callGet() {
		return "method/methodForm";
	}
	@RequestMapping(method=RequestMethod.POST)
	public String callPost() {
		return "method/methodProcess";
	}
}

4. @PathVariable을 이용한 경로 변수

  • 게시글의 내용을 보여줄 때 url이 http://localhost/board/boardDetail?no=10와 같이 요청 파라미터를 이용하는 경우가 많다. 그러나 url 자체를 이용해서 게시글 링크를 표현하는 경우도 많음
  • @RequestMapping 어노테이션은 경로에 {변수} 형식의 경로 변수 사용이 가능
  • @PathVariable 어노테이션을 사용하면 경로 변수의 값을 파라미터로 전달받을 수 있다.
@Controller
public class BoardCotroller {
  @RequestMapping("/board/{boardNo}")
  public String BoardDetail(@PathVariable String boardNo){
    ...
  }
}
  • 스프링이 경로 변수 값을 파라미터 타입에 맞게 변환해준다.
  • 정규 표현식을 사용할 수도 있다.

태그: ,

카테고리:

업데이트:

댓글남기기