스프링 컨트롤러가 두 가지 요청을 모두 처리 할 수 있습니까? 나는 종류의 단일 컨트롤러 정의하면Spring의 @RequestParam 선택적 매개 변수를 처리하는 MVC
1) http://localhost:8080/submit/id/ID123432?logout=true
2) http://localhost:8080/submit/id/ID123432?name=sam&password=543432
은 :와
@RequestMapping (value = "/submit/id/{id}", method = RequestMethod.GET,
produces="text/xml")
public String showLoginWindow(@PathVariable("id") String id,
@RequestParam(value = "logout", required = false) String logout,
@RequestParam("name") String username,
@RequestParam("password") String password,
@ModelAttribute("submitModel") SubmitModel model,
BindingResult errors) throws LoginException {...}
HTTP 요청은 "로그 아웃"을 인정하지 않습니다.
각 요청을 개별적으로 처리 할 두 개의 컨트롤러를 정의하면 "이미 '컨트롤러'bean 메서드 ... 맵핑이 있습니다"라는 예외로 Spring이 불평합니다.
누군가 로그 아웃하고 이름과 암호를 모두 URL로 전달하면 어떻게됩니까? 그냥 설명서를 읽으십시오. '! myParam 스타일 표현은 \t * 지정된 매개 변수가 요청에 존재하지 않아야 함을 나타냅니다.'시도해야합니다. –
가장 적합한 일치 항목을 찾을 것이고, 아마도 'handleLogin'을 사용하려고 시도 할 것입니다. 그렇지 않으면 매핑을 찾을 수 없다는 예외를 줄 것입니다. –
보안 관점에서 볼 때 로그 아웃은 POST 요청 만 받아 들여야하므로 2 개의 메소드가 있어야하며 URL을 동일하게 유지하는 것은 의미가 없습니다. –