从GET请求中提取变量的最有效/最优雅的方法是什么?
有比读取queryString()
更好的方法(它返回一个必须手动处理的Map
)。改为使用play.data.DynamicForm
:
public static Result aboutAMan() {
DynamicForm df = form().bindFromRequest();
int age;
String name;
boolean isAdmin;
name = (df.get("name") != null) ? df.get("name") : "The Unknown";
age = (df.get("age") != null) ? Integer.parseInt(df.get("age")) : 0;
isAdmin = Boolean.parseBoolean(df.get("is_admin"));
String about = (name + " is " + age + " years old and " + ((isAdmin) ? "is" : "isn't") + " an admin");
return ok(about);
}
当然,你也可以使用较短的版本,同时获得单一参数
public static Result aboutAMan() {
return ok("ellou' " + form().bindFromRequest().get("name"));
}
链接是:
http://localhost:9000/about-a-man?name=SockSocket&age=23&is_admin=false
路线是:
GET /about-a-man controllers.Application.aboutAMan
已找到。只需使用request().queryString()