[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){
...
}
}
- 스프링이 경로 변수 값을 파라미터 타입에 맞게 변환해준다.
- 정규 표현식을 사용할 수도 있다.
댓글남기기