6

私は...立ち往生oO

私は外国の要求にパラメータを持っています:

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 ではそれができないのでしょうか?

4

2 に答える 2

6

最もきれいな方法ではありませんが、asFormUrlEncoded によって返されるマップのキーを取得しようとしましたか?

Set<String> keys = request().body().asFormUrlEncoded().keySet();
for (String key : keys) {
     // check if key begin with "param["
}
于 2012-08-19T13:13:50.587 に答える
5

これが機能しない理由は、フレームワークで使用可能なList[String]またはArray[String]のQueryStringBinderがまだないためです。私の知る限り、これはPlay2.1で計画されています。

今すぐ必要な場合は、次のソリューションを試すことができます:QueryStringBinder for List [String]

于 2012-08-19T10:26:56.890 に答える