bindFromRequest 和 asFormUrlEncoded return 不同的值
bindFromRequest and asFormUrlEncoded return different values
我有一个表单,其中字段名称与提交的 method/url 参数之一相同,比如 someInt
。 IE。我的表单有 @(dummyForm:Form[Dummy], someInt:Int)
,dummyForm
有一个字段 "someInt" -> number
,控制器定义为 def submit(someInt:Int) =...
。 Sample code here.
假设我提交了 dummy.someInt 值 222 和 url 参数 555 的表单,我发现以下内容:
request.body.asFormUrlEncoded
表示一个someInt,即输入域中输入的值:(someInt,ArrayBuffer(222))
bindFromRequest
,但是以某种方式将表单值绑定到 url 参数值,在本例中为 555
这是预期的行为吗?我还以为 bindFromRequest
能区分这两者?有没有更好的方法来防止这种类型的冲突(除了使用不同的名称)?
(在这种情况下有一个解决方法。如果您明确指定 asFormUrlEncoded
值集,即 bindFromRequest(request.body.asFormUrlEncoded.getOrElse(Map()))
。我正在使用 Scala - 没有尝试在 Java 中复制。)
在 bindFromRequest 函数中,request.queryString
明确附加到值列表。
我有一个表单,其中字段名称与提交的 method/url 参数之一相同,比如 someInt
。 IE。我的表单有 @(dummyForm:Form[Dummy], someInt:Int)
,dummyForm
有一个字段 "someInt" -> number
,控制器定义为 def submit(someInt:Int) =...
。 Sample code here.
假设我提交了 dummy.someInt 值 222 和 url 参数 555 的表单,我发现以下内容:
request.body.asFormUrlEncoded
表示一个someInt,即输入域中输入的值:(someInt,ArrayBuffer(222))
bindFromRequest
,但是以某种方式将表单值绑定到 url 参数值,在本例中为555
这是预期的行为吗?我还以为 bindFromRequest
能区分这两者?有没有更好的方法来防止这种类型的冲突(除了使用不同的名称)?
(在这种情况下有一个解决方法。如果您明确指定 asFormUrlEncoded
值集,即 bindFromRequest(request.body.asFormUrlEncoded.getOrElse(Map()))
。我正在使用 Scala - 没有尝试在 Java 中复制。)
在 bindFromRequest 函数中,request.queryString
明确附加到值列表。