我正试图向我的控制器发送Infoobjects列表。我需要指定路线文件。我知道如何发送int、字符串和长参数,但是List<>怎么样?
我尝试过这样做,但是它不起作用,我会收到一条错误消息,上面写着"not:“。
GET /generateExcel controllers.Application.generateExcel(list:List[Infoobject])谢谢!
发布于 2013-07-08 08:24:52
首先,我认为您需要将对象的包放在列表的[]中:List[path.of.your.package.Infoobject] (在您的路线中没有导入)。
无论如何,我认为您只能将字符串和数字放在URL中,以便向控制器发送参数。
1 1rst:您可以创建一个将对象(List[Infoobject])绑定到字符串的QueryStringBindable,以便控制器将通过URL作为字符串发送的信息恢复为ListInfoobject。
2解决方案:您可以发送字符串以帮助您在控制器中重新创建列表(例如,如果您查询数据库,或者它是一个仅包含字符串属性的对象列表)
下面是QueryStringBindable:http://www.playframework.com/documentation/api/2.1.1/java/play/mvc/QueryStringBindable.html的java文档
发布于 2013-07-08 10:31:51
路由不是传递复杂对象的最佳位置,而不是传递一个List (正如其他在答案/注释中指出的那样),您可以通过发送数据库中持久化的对象的逗号分隔列表来做得更好。记住,在许多地方你都可以碰壁。限制查询的长度什么的。
如果不能/不想将它们保存在DB中,也可以使用缓存API将整个列表存储在请求之间的内存中,这样就可以将缓存条目的ID作为普通的String发送到url中。
https://stackoverflow.com/questions/17521308
复制相似问题