2012-07-06 71 views
7

我試圖定義一個可選的列表作爲查詢參數播放2.0:可選列表中查詢

GET /places controllers.Application.query(filter: Option[Seq[Int]]) 

的路線,但得到這個錯誤

conf/routes - PlayException: Compilation error [`)' expected but `]' found] 

我知道玩2處理Option小號好吧,我希望它通過Seq到我的自定義QueryStringBindable,如何實現這一目標?

回答

7

似乎Play 2.0.2路由分析器不支持嵌套類型參數。我已經找到解決辦法,我已經爲Seq[Int]定義的別名:

type IntSeq = Seq[Int] 

,並用它來代替原來的類型:

GET /places controllers.Application.query(filter: Option[IntSeq]) 

現在按預期工作。

+0

我在哪裏可以在我的代碼中定義這種類型?我不能把它放在路線文件中...... – 2013-12-17 05:29:43

+1

@JacobLyles你可以在任何地方定義它(當然路線文件除外),然後通過指定'routesImport + =「your.namespace.IntSeq」'來導入它。你的'Build.scala'設置部分。 – lambdas 2013-12-17 05:39:56

+0

這是繼續在以後的Play版本的情況下? – 2017-09-21 23:37:53