Как request.getParameterNames в список строк? - программирование
Подтвердить что ты не робот

Как request.getParameterNames в список строк?

Можно ли получить request.getParameterNames() как список строк? Мне нужно иметь его в этой форме.

4b9b3361

Ответ 1

Просто построить новый ArrayList пакетный набор запросить карту параметров.

List<String> parameterNames = new ArrayList<String>(request.getParameterMap().keySet());
// ...

Мне просто интересно, как это полезно иметь в качестве List<String>. A Set<String> будет иметь больший смысл, поскольку имена параметров должны быть уникальными (a List может содержать повторяющиеся элементы). A Set<String> также является тем, что уже представляет собой набор ключей карты.

Set<String> parameterNames = request.getParameterMap().keySet();
// ...

Или, может быть, вам это совсем не нужно для конкретного функционального требования, для которого вы подумали, что массирование имен параметров в List<String> будет решением, Возможно, вы на самом деле намерены перебирать его в расширенном цикле, например? Это также вполне возможно на Map.

for (Entry<String, String[]> entry : request.getParameterMap().entrySet()) {
    String name = entry.getKey();
    String value = entry.getValue()[0];
    // ...
}

Ответ 2

Можно получить параметрыParameterNames из сервлетов с помощью метода HttpServletRequest.getParameterNames(). Это возвращает enumeration. Мы можем отбросить элементы клики в string и добавить их в ArrayList параметров следующим образом.

 ArrayList<String> parameterNames = new ArrayList<String>();
 Enumeration enumeration = request.getParameterNames();
    while (enumeration.hasMoreElements()) {
        String parameterName = (String) enumeration.nextElement();
        parameterNames.add(parameterName);
    }

 // you can do whatever you want to do with parameter lists..

Ответ 3

Вы можете использовать Guava, чтобы преобразовать Enumeration в Iterator, а затем Iterator в List:

Lists.<String> newArrayList(Iterators.forEnumeration(request.getParameterNames()))

Ответ 4

Возможно, вы можете использовать это:

List<String> parameterNamesList = Collections.list(request.getParameterNames());