Запросы могут поступать на сервер, например:
http://localhost:8080/App/rest/data/?sort(+Browser) (из сетки данных dojo)
Я хочу получить сортировку ? (+ Браузер) часть.Проблема в том, что это значение ключа, но оно может каждый раз меняться (например,? Sort (-username) и т. Д.) В настоящее время я делаю это так:
@GET
@Produces( { MediaType.APPLICATION_JSON })
public Response getData(@Context UriInfo ui) throws NamingException {
MultivaluedMap<String, String> queryParams = ui.getQueryParameters();
for (Entry<String, List<String>> entry : queryParams.entrySet()){
if( Pattern.matches("sort.*", entry.getKey()) ){
//do something with entry.getKey();
}
}
...
Есть лилучше / проще получить этот параметр запроса, чем использовать цикл for?Вместо использования @Context UriInfo ui
я подумал, что мог бы использовать QueryParam с регулярным выражением, что-то вроде
@GET
@Produces( { MediaType.APPLICATION_JSON })
public Response getData(@QueryParam("{sort.*}") String sortStr) throws NamingException { ...}
Однако не похоже, что QueryParam принимает любую форму регулярного выражения.
Iтакже попытался оставить поле имени пустым, но затем понял, что сортировка (+ Browser) будет ключом, поэтому оставить его пустым не помогло.Спасибо:)