gpt4 book ai didi

forms - 从表单绑定(bind)多个对象在play framework 2.0中

转载 作者:行者123 更新时间:2023-12-03 18:20:08 26 4
gpt4 key购买 nike

我拼命地尝试从表单提交中接收值列表并将其绑定(bind)到对象列表。

有效的是检索单行:

//class
case class Task(name: String, description: String)

val taskForm: Form[Task] = Form(
mapping(
"name" -> text,
"description" -> text

)(Task.apply)(Task.unapply)
)


//form
<tr>
<td><input name="name" type="text" class="span2" placeholder="Name..."></td>
<td><textarea name="description" class="autoexpand span7" rows="1" placeholder="Description..."></textarea>
</td>
</tr>

//receiving action:
val task = taskForm.bindFromRequest.get

但是现在我想提交多个任务类型的对象,例如:
<tr>
<td><input name="name[0]" type="text" class="span2" placeholder="Name..."></td>
<td><textarea name="description[0]" class="autoexpand span7" rows="1" placeholder="Description..."></textarea></td>
</tr>
<tr>
<td><input name="name[1]" type="text" class="span2" placeholder="Name..."></td>
<td><textarea name="description[1]" class="autoexpand span7" rows="1" placeholder="Description..."></textarea></td>
</tr>

做一个
taskForm.bindFromRequest.get
现在失败了。

有人想出解决方案吗?还是您对这种情况的处理方式完全不同?

最佳答案

好吧,感谢您提示我再次查看文档,我已经看过它们,但永远无法弥补如何将其组合以使其工作。我认为这是因为我是一个完全的 scala 菜鸟。
但是,我在给它一段时间后让它工作了,这是我的解决方案:

//classes
case class Task(name: String, description: String)
case class Tasks(tasks: List[Task])

val taskForm: Form[Tasks] = Form(
mapping(
"tasks" -> list(mapping(
"name" -> text,
"description" -> text
)(Task.apply)(Task.unapply))
)(Tasks.apply)(Tasks.unapply)
)

//form
<tr>
<td><input name="tasks[0].name" type="text" class="span2" placeholder="Name..."></td>
<td><textarea name="tasks[0].description" class="autoexpand span7" rows="1" placeholder="Description..."></textarea></td>
</tr>
<tr>
<td><input name="tasks[1].name" type="text" class="span2" placeholder="Name..."></td>
<td><textarea name="tasks[1].description" class="autoexpand span7" rows="1" placeholder="Description..."></textarea></td>
</tr>

最后做一个:
val tasks = taskForm.bindFromRequest.get

检索任务列表。

关于forms - 从表单绑定(bind)多个对象在play framework 2.0中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10218814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com