从表单(Play2 Framework)获取一个参数的最佳方法是什么?

时间:2014-08-04 04:39:26

标签: java playframework-2.0

我想通过一个参数(例如,名称)创建用于搜索记录的简单表单。 看起来像创建一个具有一个属性(名称)的类而不是使用表单的帮助程序 - 不是最好的方法。 是否有任何考试如何从请求中获取POST数据并从该数据中获取属性值?

非常感谢您浪费时间。

2 个答案:

答案 0 :(得分:2)

您已经回答了自己的问题,我只想提供更多信息:

您创建一个具有单个属性的类是正确的,但请记住,您可以在此类中使用验证注释(如@Required@Email等) - 所以如果有这个属性背后的一些(超级)复杂逻辑,这也可能是一个有价值的选择。

第二个解决方案是使用DynamicForm - 当你没有真正拥有备份提交表单的模型时,你会使用它们。它是这样的:

public static Result index() {
    DynamicForm requestData = Form.form().bindFromRequest();
    String name = requestData.get("name");
    return ok(name);
}

当然,获得价值的第三个选择就像你提到的那样:

String name = request().body().asFormUrlEncoded().get("name")[0];

答案 1 :(得分:0)

如果您不使用表格验证,我认为您不需要创建课程。相反,您可以使用像$.ajax()这样的AJAX函数,它将路由到您的特定controller函数。此外,您可以从model调用controller函数,然后最后返回结果。结果将由$.ajax()函数捕获。

$.ajax
  type: "POST"
  url: url
  data: data
  success: success
  dataType: dataType