bie*_*ior 6 java playframework-2.0
我...卡住了
我在外国请求中参考:
param[62537]=abc;
param[20356]=cde;
param[92837]=fgh;
Run Code Online (Sandbox Code Playgroud)
我正在寻找任何方式来绑定它们,即.与DynamicForm.
我可以得到:
DynamicForm dynamicForm = form().bindFromRequest();
String firstParam = dynamicForm.field("param[62537]").value();
Run Code Online (Sandbox Code Playgroud)
但是当然我不知道索引,因为它们是client-side在独立应用程序创建的表单中选择的.
当我尝试使用时:
String[] firstParam = dynamicForm.field("param").value(); // it's NULL
String[] firstParam = dynamicForm.get("param"); // it's NULL
Run Code Online (Sandbox Code Playgroud)
甚至
String[] params = request().body().asFormUrlEncoded().get("param");
// it's still NULL
Run Code Online (Sandbox Code Playgroud)
我是否错过了一些非常基本的东西,或者Play只是不能那样做?
不是最漂亮的方式,但是你是否尝试获取asFormUrlEncoded返回的Map的键:
Set<String> keys = request().body().asFormUrlEncoded().keySet();
for (String key : keys) {
// check if key begin with "param["
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这不起作用的原因是框架中没有可用于List [String]或Array [String]的QueryStringBinder.据我所知,这是计划用于Play 2.1.
如果你现在需要它,你可以尝试这里显示的解决方案:List [String]的QueryStringBinder