1

play 2.4 java에서 선택적 매개 변수를 사용하고 싶습니다. docs를 읽은 후, 나는 다음과 같은 경로를 추가 :재생시 URL 재 작성을 사용하는 선택적 매개 변수 2.4

GET /api/users/:page controllers.EmployeeController.getUsers(page:Int,pageSize:Int ?= 10) 

내가 페이지 크기가이 URL에서 선택되고 싶어요. 내가 액세스 할 수있는 URL은 다음과 같습니다

/api/users/1 
/api/users/1?pageSize=5 

그러나 문제는 내가 좋아하는 두 번째 URL을 사용하고자하는 것입니다 : 현재 찾을 수없는 나에게 조치를했다

/api/users/1/5 

.

내가이 방법을 사용할 수 있습니까?

참고 : 분리 된 URL을 @Salem으로 언급하고 싶지 않습니다. 경로 파일에서이 단일 URL을 사용하고 싶습니다.

답변

1

그냥

GET  /api/users/:page    controllers.EmployeeController.getUsers(page:Int,pageSize:Int = 10) 
GET  /api/users/:page/:pageSize controllers.EmployeeController.getUsers(page:Int,pageSize:Int) 

주 (이것은 당신이 아무 것도 제공되지 않은 경우 pageSize가 값으로 "10"를 사용하고자하는 가정한다) 동일한 컨트롤러에 두 번째 매핑을 추가하는 getUsers 더 이상 선택 사항이 아닌 경우 두 번째 매개 변수

+0

고마워요.하지만 새로운 경로를 만들고 싶지 않습니다. 다른 방법이 있습니까? – silentprogrammer

+0

나는 그렇게 생각하지 않는다. 해당 URL을 덮어 쓰려면 [this] (http://stackoverflow.com/a/38873541/1205368)와 같은 필터를 작성하면되지만 일부 작업을 수행하지 않으면 Java 컨트롤러에서 작동하지 않습니다. 조금 지나치게 잔인합니다. 당신이 Nginx/Apache/Play를 가지고 있다면, 거기에있는 URL을 다시 쓸 수 있습니다. – Salem

+0

@silentprogrammer 다른 경로를 만들지 말아주세요? –

관련 문제