我只能在java中找到例子,他们似乎都暗示我正在做的事情应该“正常工作”。我有一个如下形式(名称为“id”或“id []”,两者都给出相同的结果)。我已经尝试将我的编辑方法声明为采用List [Int]或Seq [Int],但在这两种情况下,id最终都为NULL。如果我转储params,我可以看到该实体确实包含正确的查询字符串,如果我只是做一个get(“id”)它返回一个包含第一个值(1)的int。如何通过表单提交某种有序的容器(不管它是列表还是seq或其他什么)?
<form method="post" action="">
<input type="hidden" name="id" value="1" />
<input type="hidden" name="id" value="2" />
<input type="hidden" name="id" value="3" />
<input type="hidden" name="id" value="4" />
<input type="text" name="name" />
<input type="submit" />
</form>
def edit(id: List[Int]) = {...}
答案 0 :(得分:1)
Play不会处理表单中的scala集合类型,只处理java集合。将表单保留为原样,但将方法更改为:
def edit(id: java.util.List[Int]) = {...}
解决问题。然后,您可以将您的Java列表转换为Scala列表并正常使用它。