[SPRING] 매개 변수 값에 의한 Spring MVC 요청 매핑을 분리하는 법
SPRING매개 변수 값에 의한 Spring MVC 요청 매핑을 분리하는 법
Spring MVC 3에서는 url 매개 변수의 값에 따라 두 개의 다른 컨트롤러 클래스를 사용하여 동일한 URL을 처리하려고합니다. @RequestMapping annotation은 params와 같은 필드를 가지고 있습니다. 다음과 같은 두 가지 매핑이 있다고 생각합니다 (클래스 수준에서 매핑 사용).
@RequestMapping(value = "/myurl", params = "name=val1")
과
@RequestMapping(value = "/myurl", params = "name=val2")
그러나 그렇지 않습니다. / myurl에 대한 컨트롤러가 이미 매핑 된 두 번째 경우 (첫 번째 경우)에 대해 Spring에서 예외가 발생합니다.
매개 변수별로 요청 매핑을 분할하기위한 정확한 해결책이 있습니까? @RequestMapping을 확장하거나 프록시를 컨트롤러로 사용하고 매개 변수에 따라 다른 컨트롤러를 호출 할 수 있습니다 ... 이견있는 사람?
최신 정보 이 방법은 클래스 수준이 아니라 메소드 수준에서만 작동합니다 ... 이것은 :
@Controller
@RequestMapping(value = "/myurl")
public class Class123 {
@RequestMapping(value = {"edit.htm"}, params = "src=1")
public String open1(Map<String, Object> map) throws Exception {....}
@RequestMapping(value = {"edit.htm"}, params = "src=2")
public String open2(Map<String, Object> map) throws Exception {....}
}
그렇지 않습니다 :
@Controller
@RequestMapping(value = "/myurl", params = "src=1")
public class Class123_1 {
@RequestMapping(value = {"edit.htm"})
public String open(Map<String, Object> map) throws Exception {....}
}
@Controller
@RequestMapping(value = "/myurl", params = "src=2")
public class Class123_2 {
@RequestMapping(value = {"edit.htm"})
public String open(Map<String, Object> map) throws Exception {....}
}
그리고 나는 다른 클래스에서 논리를 분리하려고합니다.
해결법
-
==============================
1.RequestMappingHandlerMapping (Spring 3.1의 새로운 기능)과 DefaultAnnotationHandlerMapping (RequestMappingHandlerMapping으로 대체 된 클래스)을 사용하는 것의 차이점처럼 들립니다.
RequestMappingHandlerMapping (Spring 3.1의 새로운 기능)과 DefaultAnnotationHandlerMapping (RequestMappingHandlerMapping으로 대체 된 클래스)을 사용하는 것의 차이점처럼 들립니다.
from https://stackoverflow.com/questions/9208210/how-to-split-spring-mvc-request-mapping-by-parameter-value by cc-by-sa and MIT license