0

我目前正在尝试将 Extjs 表单连接到 Play!斯卡拉后端。

我收到请求没有问题,但是

FormName.bindFromRequest.get回到我身边None

我能够在 POST 请求中找到通过 Extjs 提交生成的数据request.request.body.data(第一个请求对象由 SocialSecure 的控制器生成),而通常绑定到表单的数据可以在request.request.body.data.elems

我认为 Extjs<form>在他们插入的 HTML 中使用的回避是导致我这个问题的原因,但我仍然想利用 Extjs 漂亮的表单验证 UI。

玩!或者 Scala 在服务器收到请求后有任何资源来修改请求吗?

更多信息

这是我/requestAudit在 POST 请求后当前指向的方法:

def requestAudit = SecuredAction(WithProvider("google")) { // SecureSocial syntax
implicit request => {                              // let's call this line 0'
  println(request.request.body.asFormUrlEncoded)   // let's call this line 1'
  println(request.body.asText)                     // let's call this line 2'
  newAuditForm.bindFromRequest.fold(
      errors => BadRequest(views.html.error(newAuditForm))
      success => { /*insert the object into my db*/ }
  ) } }


Ext.js 请求

当我在 Eclipse 中使用 Ext.js 表单进行调试时,“变量”窗口显示:(单击查看特写) 表单值位于request.body.data.key1request.body.data.key2等 中的位置

引导表单请求

另一方面,对 Bootstrap 的请求将值存储在request.body.data.elems

4

1 回答 1

0

@2manyprojects 的建议让我走上了正确的道路:

newAuditForm.bindFromRequest(
  (request.request.body.asFormUrlEncoded).getOrElse(Map()))
      .fold( ... )

工作。

将代码更改为此后,我仍然遇到表单绑定错误,然后我发现name我的 Ext.js 表单字段之一的属性中有错字。UI 和 Play Form 上的字段名称必须相同。

于 2013-07-22T23:06:02.483 回答