zoukankan      html  css  js  c++  java
  • 关于request.getParameterMap()的类型转换和数据获取

    首先po上一个自己写的转换类。

     1 /**
     2      * @author Xfiler
     3      * @described 将request.getParameterMap()转换为普通的Map的工具方法
     4      * @param request
     5      * @return
     6      */
     7     public Map<String, String> convertMap(HttpServletRequest request) {
     8         Map<String, String> returnMap = new HashMap<>();
     9         // 转换为Entry
    10         Set<Map.Entry<String, String[]>> entries = request.getParameterMap().entrySet();
    11         // 遍历
    12         for (Map.Entry<String, String[]> entry : entries) {
    13             String key = entry.getKey();
    14             StringBuffer value = new StringBuffer("");
    15             String[] val = entry.getValue();
    16             if (null != val && val.length > 0) {
    17                 for (String v:val) {
    18                     value.append(v);
    19                 }
    20             }
    21             returnMap.put(key, value.toString());
    22         }
    23 
    24         return returnMap;
    25     }

    然后我们要问为什么这样做了?

    那还是先放上一个报错信息:

    java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
        at com.xfiler.servlet.MyServlet.doGet(MyServlet.java:53)
        客户端表单数据传输到Servlet的doGet()方法类型转换错误.正确结束String[]不能转化为String 

    这个报错信息说明request.getParameterMap()返回的Map不是我们平常的Map<Object,Object>类型,而是Map<String,String[]>,从而需要将value值部分进行转换。

    所以回到开始的代码可以看出,做了这部分的转换。

    --------------------
    做一个精神上的素食主义者。
  • 相关阅读:
    Qt QPainter::end: Painter ended whith 2 saced states
    2月6日学习内容
    2月5日学习总结
    2月4日所学内容
    2月3日学习内容
    2月2日学习收获
    2月1日学习内容
    构建之法读后感(一)
    11月从小工到专家读后感(二)
    11月从小工到专家的读后感(一)
  • 原文地址:https://www.cnblogs.com/xfile/p/4966463.html
Copyright © 2011-2022 走看看