我試圖將一個InfoObject對象列表發送給我的控制器。我需要指定路由文件。 我知道如何發送int,字符串和參數長,但如何列表<>?在Java Play Framework 2中,作爲參數的列表<>的路由
我試過這個,但它不工作,我會得到一個錯誤消息,說「找不到:輸入Infoobject」。
GET /generateExcel controllers.Application.generateExcel(list:List[Infoobject])
謝謝!
我試圖將一個InfoObject對象列表發送給我的控制器。我需要指定路由文件。 我知道如何發送int,字符串和參數長,但如何列表<>?在Java Play Framework 2中,作爲參數的列表<>的路由
我試過這個,但它不工作,我會得到一個錯誤消息,說「找不到:輸入Infoobject」。
GET /generateExcel controllers.Application.generateExcel(list:List[Infoobject])
謝謝!
首先,我認爲你需要把你的對象的包放在列表的[]中: List[path.of.your.package.Infoobject]
(你的路由沒有導入)。
無論如何,我認爲你只能在URL中放置字符串和數字,以便將參數發送到你的控制器。
1RST解決方法:您可以創建一個QueryStringBindable
結合你的對象(List[Infoobject]
)爲一個字符串,這樣通過URL發送一個字符串的信息由控制器列表[遍歷infoObject]恢復。
第二個解決方法:您可以發送字符串,可以幫助你重新創建列表中你控制器(如果你在數據庫中查詢例如,或者如果它是對象的名單,只包含字符串屬性)
這裏對於QueryStringBindable的Java文檔:http://www.playframework.com/documentation/api/2.1.1/java/play/mvc/QueryStringBindable.html
此問題與[此問題](http://stackoverflow.com/questions/17482984/play-framework-controller-action-runs-every-load)和第一個答案有關。如果這是做錯的方式,請嘗試回答我鏈接的問題。 – Kungen
我認爲在概念上是錯誤的方法..你試圖通過URL發送一個重對象列表!真奇怪。你會更好地將它們存儲在一個POST中 – cjds
@Kugen方法總的來說,它是一個抽象,你從get請求中得到的不應該是像String這樣的基本類型。 –