我想根据 @Greg Kopff here 发布的回复来提出这个问题
基本上,我想做的是将 request.getParameterMap() 方法返回的 Map 的内容转储到输出。
我得到以下奇怪的映射作为输出(我相信其值是字符串或字符串数组的对象引用的地址)
{submit=[Ljava.lang.String;@1fe4169, color=[Ljava.lang.String;@178920a, chek_games=[Ljava.lang.String;@bbfa5c, foo=[Ljava.lang.String;@131de9b}
我尝试过以下代码 -
public class CoffeeSelect extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Map requestParams = req.getParameterMap(); resp.getWriter().println(requestParams); } }
以下是我的 HTML
最佳答案
[L
符号表明它是 String[]
的字符串表示形式。 HTTP 可以让你做类似的事情
http://myserver.com/mypage?myparam=firstvalue&myparam=secondvalue ....
(想想多选<select>
)
为了实现这一点,参数 Map 不是 Map<String, String>
但是Map<String, String[]>
(我不知道该实现是否真的使用了泛型,它只是一个显式的表示)。
因此,要转储参数,您需要执行以下任一操作。
a) 假设您不会获得同一参数的多个值;循环获取参数名称并使用 request.getParameter
b) 如果您接受多个值,则循环获取参数名称并序列化数组。
关于java - 转储 java.util.Map 的内容 - 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11063275/