2013-08-22 3 views
0

Я использую PLAY2 Framework с Java есть маршрут, как это:Как получить динамическую часть маршрута из http.context в Play! Framework

GET /clients/:id   controllers.Clients.show(id: Long) 

Кроме того, я использую композицию действий путем добавления @With(BeforeHandler.class) иметь до обратного вызова. Теперь я хотел бы проверить идентификатор, который передается в действие уже в моем BeforeHandler. На самом деле это должно быть где-то в Http.Context, который передается методу вызова моего BeforeHandler. Все, что я могу найти, это карта с анализируемыми статическими аргументами, такими как вызываемый контроллер, называемый действием и полным маршрутом. Также я нашел карту queryString() в ctx._requestHeader().queryString().

Где можно найти динамическую часть: id?

ответ

0

с QueryString вы пытаетесь осмотреть что-то вроде
/clients?id=2
и
getQueryString("id")
возвратит 2

В вашем случае, вы должны сделать регулярное выражение, чтобы найти то, что вам нужно, или что-то подобное :

String[] paths = ctx.request().path().split("/"); 
Long id = Long.getLong(paths[2]);