我正在尝试将Extjs表单连接到Play! Scala后端。
我收到请求没问题,但是
FormName.bindFromRequest.get
返回给我None
。
我能够通过request.request.body.data
中的POST请求中的Extjs提交生成的数据(第一个请求对象由SocialSecure的控制器生成),而通常可以找到绑定到表单的数据。 request.request.body.data.elems
我认为Extjs在插入HTML中使用<form>
的问题导致了我这个问题,但我仍然希望利用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*/ }
) } }
当我在Eclipse中使用Ext.js表单进行调试时,Variables窗口显示:( click for closeup)
表单值位于request.body.data.key1
,request.body.data.key2
等位置
答案 0 :(得分:0)
@ 2manyprojects的建议让我走上了正确的道路:
newAuditForm.bindFromRequest(
(request.request.body.asFormUrlEncoded).getOrElse(Map()))
.fold( ... )
的工作。
我将代码更改为此后仍然出现表单绑定错误,然后我在我的一个Ext.js表单字段的name
属性中发现了一个拼写错误。 UI和播放表单上的字段名称必须相同。