【问题标题】:Playframework get value from form objectPlayframework 从表单对象中获取值
【发布时间】:2014-08-07 07:59:25
【问题描述】:

嘿,我有一个包含一些数据的表单。在表单的顶部和末尾,我有相同的输入字段。这是一个密码确认。在这里您可以看到我如何尝试从字段中获取值以验证用户是否输入了值。

userForm.field("passwordConfirm").valueOr("").isEmpty()

现在我的问题。如果我在顶部的输入字段中输入密码,我可以从该字段中获取值,但是如果我在表单末尾的输入字段中输入密码,我不会得到值。如何从第二个输入字段而不是第一个输入字段中获取值? 我在 play 中使用了 input helper 来输入密码字段。

@inputPassword(userForm("passwordConfirm"), '_label -> Messages("view.user.passwordConfirmation"), '_showConstraints -> true, 'autocomplete -> "off")

【问题讨论】:

    标签: java forms validation playframework-2.1


    【解决方案1】:

    如果您在 HTML 模板中两次使用该输入助手,这将生成两个具有相同名称的输入字段

    当您只填写表单顶部的字段并提交时,生成的 HTTP POST 请求将如下所示:

    ...
    passwordConfirm=hello
    passwordConfirm=
    ...
    

    当您只填写表单底部的字段并提交时,请求将如下所示:

    ...
    passwordConfirm=
    passwordConfirm=hello
    ...
    

    我认为 Play 的表单绑定方法将获取它找到的第一个 passwordConfirm 条目的值,这解释了您所看到的行为。

    您的选择是:

    1. 以不同的方式命名两个密码字段,然后使用验证层中的两个不同名称检查这两个字段。
    2. 保持您的 HTML 不变并自己手动循环遍历表单数据,而不是要求 Play 将其绑定到您的一个 POJO。

    【讨论】:

      猜你喜欢
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 1970-01-01
      • 2015-01-11
      相关资源
      最近更新 更多