使用scala 0.9.1在play 1.2.4中通过POST提交数组/列表/ seq

时间:2012-02-03 17:12:58

标签: scala playframework

我只能在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]) = {...}

1 个答案:

答案 0 :(得分:1)

Play不会处理表单中的scala集合类型,只处理java集合。将表单保留为原样,但将方法更改为:

def edit(id: java.util.List[Int]) = {...}

解决问题。然后,您可以将您的Java列表转换为Scala列表并正常使用它。