작성
·
301
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
@GetMapping(value = "/mapping-param", params = {"mode=debug","mode=good"})
public String mappingParam() {
log.info("mappingParam");
return "ok";
}
http://localhost:8080/mapping-param?mode=debug
http://localhost:8080/mapping-param?mode=good
http://localhost:8080/mapping-param?mode=debug&mode=good
이 URL들로는 Whitelabel Error Page가 뜨는데 어떻게 호출할 수 있나요?
답변 2
1
저렇게는 호출 못할 것 같아요 HTTP 요청은 파라미터 한 개에다가 한 개에 값만 매칭시킬 수 있는데 저 경우에는 한 개의 파라미터에 두 개의 값을 매칭시키는 거니까 저렇게 하면 당연히 안 되고
저 두 조건을 만족시키려면 OR 조건으로 나눠서 분리해서 처리하거나 아니면 파라미터명을 mode, status 이렇게 해서 좀 다르게 해서 매칭시키거나 해야 URL에 대해서 옳바르게 동작할 것 같습니다.
1
안녕하세요 11 1님!
mode 라는 동일한 이름의 키를 이용하여 생기는 문제 같습니다.
이 때는 파라미터를 콤마등으로 구분하여 전달한 후 백엔드에서 이 값을 분리(split) 하여 처리하는 등의 처리가 필요합니다. 아니면 sim2 님 말처럼 파라미터를 분리하는 방법이 필요합니다.
감사합니다.
아 질문 내용이 부족했네요. 이 클래스는 @RestController 애노테이션을 적용한 상태입니다.
params = "mode=debug"일 땐 오류 없이 호출할 수 있는데,
params = {"mode=debug","mode=good"}
이때는 어떻게 호출해야 할지 모르겠습니다.