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