私は非常に新しいJavaフレームワークをプレイしています。/something /:somthingValueなどすべての通常のルートを設定しました。今、私はインクルードがJavaプレイフレームワークでクエリ文字列パラメータを取得する方法は?
/何かのようなクエリパラメータを受け入れるルートを作成したいですか?ここでは= 30
X = 10 & Y = 20 & zの私は、後にすべてのparamsを取得したいです "?"キー==>値のペアとして。
私は非常に新しいJavaフレームワークをプレイしています。/something /:somthingValueなどすべての通常のルートを設定しました。今、私はインクルードがJavaプレイフレームワークでクエリ文字列パラメータを取得する方法は?
/何かのようなクエリパラメータを受け入れるルートを作成したいですか?ここでは= 30
X = 10 & Y = 20 & zの私は、後にすべてのparamsを取得したいです "?"キー==>値のペアとして。
あなたは、routesファイルにあなたのクエリパラメータに配線することができ:
セクションでhttp://www.playframework.com/documentation/2.0.4/JavaRouting「デフォルト値を持つパラメータ」
またはあなたのアクションでそれらを求めることができます:
public class Application extends Controller {
public static Result index() {
final Set<Map.Entry<String,String[]>> entries = request().queryString().entrySet();
for (Map.Entry<String,String[]> entry : entries) {
final String key = entry.getKey();
final String value = Arrays.toString(entry.getValue());
Logger.debug(key + " " + value);
}
Logger.debug(request().getQueryString("a"));
Logger.debug(request().getQueryString("b"));
Logger.debug(request().getQueryString("c"));
return ok(index.render("Your new application is ready."));
}
}
たとえば、http://localhost:9000/?a=1&b=2&c=3&c=4
はコンソールに印刷されます。
[debug] application - a [1]
[debug] application - b [2]
[debug] application - c [3, 4]
[debug] application - 1
[debug] application - 2
[debug] application - 3
c
はURLの2倍であることに注意してください。
あなたは地図とすべてのクエリ文字列パラメータを取得することができます。
Controller.request().queryString()
このメソッドはMap<String, String[]>
オブジェクトを返します。あなたがそれらを得るJava/Play 1.x
で
:
プレイ2.5.XでRequest request = Request.current();
String arg1 = request.params.get("arg1");
if (arg1 != null) {
System.out.println("-----> arg1: " + arg1);
}
、それは、一つには、デフォルト値を置くことができるconf/routes
、で直接行われますあなたの場合は
# Pagination links, like /clients?page=3
GET /clients controllers.Clients.list(page: Int ?= 1)
(とき文字列を使用)
GET /something controllers.Somethings.show(x ?= "0", y ?= "0", z ?= "0")
強いタイピングを使用する場合:
GET /something controllers.Somethings.show(x: Int ?= 0, y: Int ?= 0, z: Int ?= 0)
詳細については、https://www.playframework.com/documentation/2.5.x/JavaRouting#Parameters-with-default-valuesを参照してください。
あなたはFormFactoryを使用することができます。
DynamicForm requestData = formFactory.form().bindFromRequest();
String firstname = requestData.get("firstname");
私はリクエストのgetQueryString()メソッドを参照してくださいすることはできませんよ()。それは私が演劇2.0を使用していてあなたは2.0.4を使用しているからですか? – Sadik
あなたは正しいです、http://www.playframework.com/documentation/api/2.0/java/play/mvc/Http.Request.htmlにはgetQueryString()は含まれていませんがrequest()。queryString()はあなたが必要です。 – Schleichardt
ありがとうたくさんの男。それに良いチュートリアルを教えていただけますか?それはドキュメントです。 – Sadik