这可能是一个重复的问题,但我无法找到解决方案。结果,我发布了自己的。
我的网址看起来像“/customer/www.bakeryx.com”,其中 www.bakeryx.com 是网址的动态部分,并映射到“/customer/:domain".
我希望当我打电话给 ctx.request()。getQueryString(“domain”)我会得到www.bakeryxcom。否则,我得到一个null响应,并且无法从该操作中获取此值。
请仔细阅读我的工作以完成此任务。我必须从上下文args中获取ROUTE_PATTERN。
public class DomainVerifierAction extends Action<DomainVerifierFilter> {
@Override
public Result call(Http.Context ctx) throws Throwable {
//how to get the domain here??
//work around is to get the route_pattern
String routePatternPlay = (String) ctx.args.get("ROUTE_PATTERN");
String path = ctx.request().path();
//added logic to extract domain from the PATH using ROUTE_PATTERN.
}
}
问题:这个问题有解决办法吗?
答案 0 :(得分:-1)
我认为您遇到的问题是您使用的getQueryString
方法正在寻找“?” URL中的运算符,与传统的GET请求一样(例如?id=1
)。相反,尝试将域作为控制器方法中的参数传递。例如:
在routes
文件中:
GET /customer/:domain controllers.Application.function(domain: String)
然后在Play控制器中(假设Play Framework 2.x):
public static Result function(String domain){
//Do something with the passed domain string here
return ok(...);
}