【问题标题】:Retriving map-like key-key-value from POST request从 POST 请求中检索类似地图的键-键-值
【发布时间】:2015-07-16 12:24:56
【问题描述】:

我已经习惯在 PHP 中执行此操作,而我可以在 HTML 中执行此操作:

<input name="a[b][c]" value="abc">
<input name="a[b][d]" value="def">
<input name="a[d][y]" value="nope">

然后在 PHP 中获取它,例如如:

foreach($_POST['a']['b'] as $thisId => $value){
    echo "key: $thisId, value: $value\n";
}

哪些输出:

key: c, value: abc
key: d, value: def

我试图找到,但似乎无法在 servlet 中找到等效项。 如何使用普通 servlet 获得等效项(无需我自己编写代码)?
如果不存在,是否有一个库可以完成这项工作?

编辑:要加上 sᴜʀᴇsʜ ᴀᴛᴛᴀ 提到的内容,我不想要我在请求中获得的所有内容的列表...我在上面的示例中添加了另一个元素以尝试制作更清楚了。

【问题讨论】:

  • 我不太清楚。看到这个链接stackoverflow.com/questions/14677993/…
  • @Satya 不错的尝试,但没有。我必须把值放在那里,所以无论如何我都必须做这项工作......

标签: servlets post dictionary http-request-parameters


【解决方案1】:

你看起来像这样吗?

    Map<String, String[]> paramValMap = req.getParameterMap();
  for (Map.Entry<String, String[]> param : paramValMap.entrySet()) {
    String key = (String) param.getKey();
    String[] values = (String[]) param.getValue();
    out.print(key);
    for (String val : values) {
            out.println(val);
    }
  }

该映射包含每个参数及其值的数组。

【讨论】:

  • 没有。这给了我通过 POST 发送的所有参数,但它们没有树状组织。此外,如果输入带有 name="a[c][y]",我会被上面的代码搞砸。
  • 还是一样的东西。它是一个更有用的 API,但它仍然是单个键值而不是键-键-键-值
  • 感谢您的尝试...实际上仍然是键值...只是在PHP中它都是hashmaps。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 2015-01-28
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
相关资源
最近更新 更多