How to request.getParameterNames into List of strings?

拟墨画扇 提交于 2021-02-06 15:20:31

问题


Is it possible to get request.getParameterNames() as a list of Strings? I need to have it in this form.


回答1:


Just construct a new ArrayList wrapping the keyset of the request parameter map.

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

I only wonder how it's useful to have it as List<String>. A Set<String> would make much more sense as parameter names are supposed to be unique (a List can contain duplicate elements). A Set<String> is also exactly what the map's keyset already represents.

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

Or perhaps you don't need it at all for the particular functional requirement for which you thought that massaging the parameter names into a List<String> would be the solution. Perhaps you actually intented to iterate over it in an enhanced loop, for example? That's also perfectly possible on a Map.

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



回答2:


It is possible to getParameterNames from servlets by using HttpServletRequest.getParameterNames() method. This returns an enumeration. We can cast the enemeration elements into string and add those into an ArrayList of parameters as follows.

 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:


You can probably use this:

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




回答4:


You could use Guava to convert the Enumeration to an Iterator, and then the Iterator to a List:

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


来源:https://stackoverflow.com/questions/17281446/how-to-request-getparameternames-into-list-of-strings

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!