Programming/Spring
@GetMapping @PostMapping 그리고 view-controller
hongchii
2022. 1. 2. 20:41
728x90
반응형
@GetMapping @PostMapping은 Spring 4.3 이후로 추가 되었다.
@RequestMapping(value="/register/add", method="RequestMethod.GET")
@RequestMapping(value="/register/save", method="RequestMaethod.POST")
이 코드를
@GetMapping("/register/add")
@PostMapping("/register/save")
이렇게 간단하게 사용할 수 있다.
@GetMapping("/register/add")
@PostMapping("/register/add")
url이 같으면 원래는 충돌이 나지만 method가 다르기때문에 구분이 가능하여 충돌나지 않는다.
@Controller
@RequestMapping("/register")
public class RegisterController {
@GetMapping("/add")
public String register() {
return "registerForm";
}
@PostMapping("/add")
public String save() {
return "registerInfo";
}
}
맵핑될 url의 공통 부분을 @RequestMapping으로 클래스에 적용할 수 있다.
@GetMapping, @PostMapping이 import가 되지 않는다면 Spring의 버전을 확인해야한다.
Maven Dependencies의 Spring버전을 확인해보자.

pom.xml의 Spring 버전을 변경해준다.
pon.xml이 수정되었을땐 Update Project를 해줘야한다.

완료 후 Maven Dependencies를 확인해보면 Spring의 버전이 변경한 버전으로 바꼈음을 확인할 수 있다.

@GetMapping("register/add")
public String register() {
return "registerForm";
}
다음과 같은 코드는 그저 register/add를 입력했을 때 registerForm view로 연결해주는 단순한 역할만 한다.
이런 경우엔 view-controller를 사용해 코드를 간소화 할 수 있다.

<view-controller path="/register/add" view-name="registerForm"/> 이라고 추가하면
@GetMapping("register/add")
public String register() {
return "registerForm";
}
위 코드와 같은 역할을 하기때문에 위 코드를 삭제해도 된다.
view-controller는 GET요청만 허용하고 POST요청은 허용하지 않는다.
728x90
반응형