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

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

    --------------------
    做一个精神上的素食主义者。
  • 相关阅读:
    Struts2 拦截器
    Struts2 常用标签
    Struts2 OGNL表达式、ValueStack
    Struts2 在Action中操作数据
    Struts2 动态方法调用
    Struts2 常量配置
    Struts2 struts.xml配置
    Struts2 Action的3种创建方式
    Struts2 运行流程
    JUnit
  • 原文地址:https://www.cnblogs.com/xfile/p/4966463.html
Copyright © 2011-2022 走看看