私はJavaプレイフレームワークが初めてです。/something/:somthingValue などの通常のルートをすべて設定しました。今、次のようなクエリパラメーターを受け入れるルートを作成したい
/something?x=10&y=20&z=30
ここでは、「?」の後にすべてのパラメーターを取得したいと考えています。キー==>値のペアとして。
私はJavaプレイフレームワークが初めてです。/something/:somthingValue などの通常のルートをすべて設定しました。今、次のようなクエリパラメーターを受け入れるルートを作成したい
/something?x=10&y=20&z=30
ここでは、「?」の後にすべてのパラメーターを取得したいと考えています。キー==>値のペアとして。
クエリ パラメータをルート ファイルに配線できます。
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 回あることに注意してください。
Play 2.5.x では、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 を参照してください。
すべてのクエリ文字列パラメーターを Map として取得できます。
Controller.request().queryString()
このメソッドはMap<String, String[]>
オブジェクトを返します。
あなたはJava/Play 1.x
それらを得る:
Request request = Request.current();
String arg1 = request.params.get("arg1");
if (arg1 != null) {
System.out.println("-----> arg1: " + arg1);
}