2016-06-15 5 views
0

먼저 두 가지 방법 중 어느 것이 먼저 호출됩니까? POST 요청에서 전송요청 매핑 아래에서 어떤 메소드가 호출됩니까?

 @RequestMapping(method = RequestMethod.POST, params="continue") 
     public String save(){ 
         } 
     @RequestMapping(method = RequestMethod.POST, params="continuesave") 
     public String saveReview(){ 
         } 

에 Params은 다음과 같습니다

내 로컬 컴퓨터에서 continuesave

= "진정한"가, 방법 (1)가 호출됩니다 계속. 그러나 우리가 찌르는 서버에서 방법 2가 호출됩니다. 메소드 호출 기준은 무엇입니까? 나는 당신의 예제를 실행하려고하면

답변

0

, 나는 그런데 예외 java.lang.IllegalStateException: Ambiguous handler methods mapped

를 얻을, 당신은 (모두 PARAMS를 요구하지 않습니다 saveReview)를 부정 PARAMS에 의해 핸들러의 우선 순위를 변경할 수 있습니다

@RequestMapping(method = RequestMethod.POST, params="continue") 
public String save(){ 
    ... 
} 

@RequestMapping(method = RequestMethod.POST, params={"continuesave"," !continue"}) 
public String saveReview(){ 
    ... 
} 
0

URL이 겹치기가 아닌 으로 매핑해야합니다. 무슨 일이 생기는지 정확히 정의되지 않은 동작 : 그것은 많은 것들에 의존하고 안전하게 예측할 수 없습니다 (심지어 @Dekart 테스트에서 예외를 throw합니다).

@RequestMapping(method = RequestMethod.POST) 
    public String save_req(WebRequest web) { 
     Map<String,String[]> param = web.getParameterMap(); 
     if (...) { // condition for save 
      return save(); 
     } 
     else { 
      saveReview(); 
     } 
    } 

    public String save(){ 
    } 
    public String saveReview(){ 
    } 
: PARAMS 모두는 제어기에있어서 내부 파라미터에 대한 하나의 매핑 테스트 있어야 요청에 동시에 존재할 수있는 경우 여기