【问题标题】:How to get form value with "-" in name?如何获取名称中带有“-”的表单值?
【发布时间】:2012-09-06 13:32:49
【问题描述】:

我正在使用 Play Framework (2.0.3),我有这种表单元素:

<input type="text" name="element-name" value="" />

服务器端,我有一个简单的 Form 类:

public class MyForm {
    @Constraints.Required
    public String elementName;
}

当然不行。

我该怎么做?是否有注释表明与名称匹配?

【问题讨论】:

    标签: forms playframework-2.0


    【解决方案1】:
    • 在您的 HTML 表单中使用相同的名称:

      <input type="text" name="elementName" value="" />
      
    • 或为您的字段使用单字名称
    • 或从DynamicForm手动绑定

      String el = form().bindFromRequest().get("element-name");
      

    【讨论】:

    • 所以我不能在自制的 Form 类中使用带有“-”的元素?
    • 我没有尝试,我没有看到任何好的理由,而修复 HTML 是最快的方法。
    • 我无法更改HTML,我需要使用特定的类,我该怎么办?
    【解决方案2】:

    AFAIK,这是不可能的。

    我认为您可以使用DynamicForm 并自己进行验证。

    或者你可以试试这样的(不知道行不行):

    Map<String, String> elementNameAsMap = new HashMap<String, String>();
    // find the HTML input value
    elementNameAsMap.put("elementName", request().body().asFormUrlEncoded().get("element-name")[0]);
    
    Form<MyForm> myForm = form(MyForm.class).bindFromRequest().bind(elementNameAsMap);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 2011-08-23
      • 2020-07-24
      相关资源
      最近更新 更多