scala - Play 2 : How to parse a dynamic list of form inputs in Scala controller?

标签 scala playframework playframework-2.0

我有一个表单,其中输入字段的数量是动态的。

如何将这些输入字段映射到游戏表单?假设每个输入标签的名称是“foo_x”,其中 x 是一个整数,每次在客户端动态创建新输入字段时都会增加该整数。 Play 中是否有任何自动映射可用,或者我是否必须“手动”执行此操作,如果是,如何完成?

最佳答案

正如 Brian 所提到的,Play 文档中有一个重复值的示例,应该可以满足您的需求。

另外,请记住,您可以嵌套映射定义。例如,我有以下内容:

val editUserForm: Form[User] = Form(
    mapping(
        "username" -> text(minLength = 4, maxLength = 50),
        "emails" -> list(optional(email)).verifying(Messages("error.mandatoryEmail"), e => e.size > 0),
        "urls" -> list(text(maxLength = 255)),
        {
            // Binding: Create a User from the mapping result
            (username, emails, urls) => {
              // Here, emails is a List[Option[String]] 
              // and urls is a List[String]
            }
        } {
            // Unbinding: Create the mapping values from an existing User value
            user => Some(user.username, 
                        user.emails.map(e => Some(e.email)), 
                        user.urls.map(_.url))
        }
    )

那里发生了很多事情,但我想展示的重要一点是,我正在使用可选的电子邮件嵌套列表,并验证该列表是否至少有一个非空元素 - 有效地强制用户至少输入列表中的一个元素。

希望这可以帮助。

关于scala - Play 2 : How to parse a dynamic list of form inputs in Scala controller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867915/

相关文章:

java - 值类型的 asInstanceOf[X] 和 toX 之间有什么区别吗?

java - 使用 hql 的 "IN"语句

playframework-2.0 - 在表单约束中访问当前请求

scala - 在哪里搜索 Scala 语法 - 保留字、关键字、运算符?

java - 如何在 Eclipse 中从 Java 编辑器显示 scala 文档?

scala - 为什么 ScheduleOnce 每次在应用程序关闭时都会运行?

java - Nodejs 使用的资源比 Play 框架少吗?

json - Play 框架 scala json 验证异常

java - scala模板 Play Framework 中的if语句

java - 将类路径传递给 buildr 中基于 java/scala 的项目中的自定义任务