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值部分进行转换。

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

    --------------------
    做一个精神上的素食主义者。
  • 相关阅读:
    tp-link便携式路由器固件升级方式
    awk改变了OFS,$0却没变化
    RBAC设计前期设计
    微信小程序获取普通二维码
    微信小程序获取请求数据
    微信小程序获取二维码API
    php之策略模式
    php之简单工厂模式
    数据库转换微信菜单
    实现微信公众号平台菜单功能
  • 原文地址:https://www.cnblogs.com/xfile/p/4966463.html
Copyright © 2011-2022 走看看