Spring MVC 3에서는 url 매개 변수의 값에 따라 두 개의 다른 컨트롤러 클래스로 동일한 URL을 처리하려고합니다. @RequestMapping 주석도 같은 필드가 있습니다 PARAMS을, 나는 두 개의 서로 다른 매핑 될 것이다 다음 생각했다 (I 클래스 수준에 매핑을 사용) :매개 변수 값으로 Spring MVC 요청 매핑을 분할하는 방법
@RequestMapping(value = "/myurl", params = "name=val1")
및
@RequestMapping(value = "/myurl", params = "name=val2")
을하지만 그렇지 않아 . /myurl에 대한 컨트롤러가 이미 매핑 된 두 번째 경우 (첫 번째 경우)에 대해 Spring에서 예외가 발생합니다.
매개 변수별로 요청 매핑을 분할하는 정확한 해결책이 있습니까? @RequestMapping을 확장하거나 컨트롤러를 프록시로 사용하고 매개 변수에 따라 다른 컨트롤러를 호출 할 수 있습니다 ... 의견이 있으십니까?
이없는 클래스 수준에 불과 방법의 수준에 있지만 작동 UPDATE ... 이 뜻 :
@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 {....}
}
그리고 다른 클래스의 논리를 분할하는 것.
그래야합니다. 나는 그것을 사용했습니다. 네가 우리를 보여주지 않았다는 다른 일이 벌어지고있다. 아마도 다른 컨트롤러가 해당 URL을 매핑 한 것일 수 있습니다. – skaffman
+1 더 많은 정보를 얻을 수 있습니까? –
흠, 이것은 같은 클래스의 메서드에서만 작동 할 수 있습니다. 문서에 언급되지 않았지만 버그인지 아닌지는 확실하지 않습니다. 어쩌면 한 클래스에서 메소드를 유지할 수 있지만 다른 클래스에 위임하여 구현을 개별적으로 유지할 수 있습니까? – skaffman