GET в JAX-RS с несколькими параметрами, разделенными & amp; [dубликат]

Если вы хотите удалить все пробелы везде из $ tags, почему бы не просто:

  str_replace ('', '', $ tags);   

Если вы хотите удалить новые строки и такие, что потребуется немного больше ...

38
задан ZKSteffel 27 May 2011 в 19:07
поделиться

3 ответа

Если вы измените тип параметра item метода из String в коллекцию, такую ​​как List & lt; String & gt; , вы должны получить

  @GET @Path ("/ foo") @Produces ("text / plain") public String methodImCalling (@DefaultValue ("Все"), который содержит все значения, которые вы ищете.  ) @QueryParam (value = "item") final List & lt; String & gt; item) {return "values:" + item;  }  

Спецификация JAX-RS (раздел 3.2) говорит следующее относительно аннотации @QueryParam :

Поддерживаются следующие типы:
  1. Примитивные типы
  2. Типы, которые имеют конструктор, который принимает один аргумент String .
  3. Типы, которые имеют статический метод с именем ] valueOf с одним аргументом String .
  4. List & lt; T> , Set & lt; T> , или SortedSet & lt; T> , где T удовлетворяет требованиям 2 или 3.
74
ответ дан stand 16 August 2018 в 00:27
поделиться
  • 1
    Определение списка & lt; String & gt; не работает. Я предполагаю, что ArrayList & lt; String & gt; будет служить той же цели? – ZKSteffel 27 May 2011 в 19:21
  • 2
    Элемент списка не работает, а ArrayList & lt; String & gt; item просто сломал мой код ... любые другие предложения? – ZKSteffel 27 May 2011 в 20:06
  • 3
    @ZKSteffel: Не знаю, почему это не сработало, так как я сделал быстрый тест, и это сработало для меня. Я отредактирую свой ответ, чтобы показать полный метод, который я использовал. Можете ли вы дать мне больше информации о том, что не удалось? – stand 27 May 2011 в 20:38
  • 4
    Оказывается, я импортировал List из неправильного пакета, и мой код начал бросать приставки. Сейчас он работает для меня. Спасибо за помощь! – ZKSteffel 27 May 2011 в 20:56
  • 5
    @Teivere: Это будет www.myurl.com/foo?item=listitem1&item=listitem2 – stand 23 November 2011 в 01:26
[D3] Список & л; Строка & GT; items = ui.getQueryParameters (). get ("item");

где ui объявлен как член в остальном ресурсе, например:

  @Context UriInfo ui;   

Недостатком является то, что он вообще не появляется в аргументах методов.

9
ответ дан Buhake Sindi 16 August 2018 в 00:27
поделиться
  • 1
    Хотя этот плакат ответил на неправильный вопрос, это был вопрос, который я искал в Google, поэтому мне нужно его продвигать, поскольку это помогло мне. @ Спасибо спасибо. – JSager 18 October 2013 в 21:00

Некоторые библиотеки, такие как axios js, используют обозначение квадратных скобок при отправке многозначного запроса параметра: / stats? store [] = A & amp; store [] = B & amp; item [] = C & amp; item [] = D

Для обработки всех случаев (с квадратными скобками или без них) вы можете добавить еще один такой параметр:

  public String methodImCalling (@QueryParam (value = "store") final List & lt;  String & gt; store, @QueryParam (value = "store []") final List & lt; String & gt; storeWithBrackets, @QueryParam (значение = "item") final List & lt; String & gt; item, @QueryParam (значение = "item []") final  List & lt; String & gt; itemWithBrackets) {...}  

Проверка каждого аргумента, проверяющего значение null.

2
ответ дан matias.g.rodriguez 16 August 2018 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: