java - 如何在 "ParameterMap"中获取参数名称的字符串数组(在 Java 中)

标签 java collections dictionary

我有一个ParameterMap集合,在不同的场景下有完全不同的参数

我需要的是 ParameterMap 中“键”的字符串数组

我得到的最接近的是使用 reportParams.toString();

这是我用来获得以下输出的内容

//The Code
ParameterMap reportParams = context.getRequestParameters();
System.out.println(reportParams.toString());

//输出

map['username' -> 'user', 'decorate' -> 'no', 'decorator' -> 'empty', 'ajax' -> 'true', '_eventId' -> 'refreshReport', 'VEFactorSelection'-> '1', 'campusAndFaculty' -> array['111', '113', '115', '118', '112', '114', '116', '117', '21907 ', '21908', '99040', '99010', '99100', '99230', '99240'], '_flowExecutionKey' -> 'e4s1', 'reportLanguage' -> '3', 'date' -> '2013/06/20', 'nameType2' -> '1', '确认' -> '真']

所以我想要的最终结果是

用户名, 装饰, 装饰师, Ajax , _ecentId, VEFactorSelection, 校园和学院, _flowExecutionKey, 报告语言, 日期, 姓名Type2, 确认

作为数组中的字符串

=============================== 所以代码现在看起来像:

ParameterMap reportParams = context.getRequestParameters();

final List<String> names = new ArrayList<String>();

for (final Object o: reportParams.asMap().keySet())
names.add((String) o);

final String[] array = names.toArray(new String[names.size()]);

System.out.println(array[0]);

最终结果:

=================================== org.springframework.beans.ConversionNotSupportedException:无法将类型“java.util.LinkedHashMap”的属性值转换为属性“readOnlyConfiguredExporters”所需的类型“org.hibernate.mapping.Map”;嵌套异常是 java.lang.IllegalStateException:无法将类型 [java.util.LinkedHashMap] 的值转换为属性“readOnlyConfiguredExporters”所需的类型 [org.hibernate.mapping.Map]:找不到匹配的编辑器或转换策略

=============================== 一些额外的

这是“ParameterMap”的API http://static.springsource.org/spring-webflow/docs/1.0.x/api/org/springframework/webflow/core/collection/ParameterMap.html

最佳答案

A ParameterMap工具 MapAdaptable , 其中有 .asMap()返回 Map .我不知道你的版本是否使用泛型;如果是,那很简单:

final List<String> names = new ArrayList<String>(map.asMap().keySet());

如果没有:

final List<String> names = new ArrayList<String>();

for (final Object o: map.asMap().keySet())
    names.add((String) o);

在那之后,如果你真的想要一个String[]而不是 List<String> ,使用:

final String[] array = list.toArray(new String[list.size()]);

关于java - 如何在 "ParameterMap"中获取参数名称的字符串数组(在 Java 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17215419/

相关文章:

java - 将 Android 应用程序上传到市场错误

java - 如何在 Android 的 void 函数中退出?

java - GridLayout 的程序逻辑错误

python - 我如何使字典中的每个 "users"成为一个键以及它们属于它的值的所有 "groups"?

java - 在 MUnit 中获取 http 响应代码

catch block 中的 Java 异常

java - 我们可以创建具有动态键和动态值的 HashMap 吗?

php - 通过数据映射器处理集合模式中的项目

python - 查找具有最大属性值的对象的键

python - 为特定键订购字典