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 

しかし、問題は、私は次のように2番目のURLを利用したいということです。現在は見られない私にアクションを与えた

/api/users/1/5 

私はこれを達成する方法はありますか?

注::@Salemとして分離されたURLを作成したくありません。私はルートファイルでこの単一のURLを使用します。

答えて

1

ただ、同じコントローラに第2のマッピングを追加します(これはあなたが何も提供されていない場合のpageSize値として「10」を使用する想定)

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

注二番目のパラメータというはもうオプションではない場合

+0

ありがとうございますが、私は新しいルートを作成したくないと言いました。他の方法はありますか? – silentprogrammer

+0

私はそうは思わない。この特定のURLを上書きするには、[this](http://stackoverflow.com/a/38873541/1205368)のようなフィルタを作成してみてください。ただし、これはJava Controllerでは動作しません。ちょっと残忍です。あなたがNginx/Apache/Playを持っているなら、そこにあるURLを書き換えることができます。 – Salem

+0

@silentprogrammer別のルートを作ることを避けていることは何ですか? –