代码片段如下public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String nextPage = "digitalweb/cart_list.jsp";
HttpSession session = request.getSession();
HashMap<String,String[]> map=(HashMap<String, String[]>) request.getParameterMap();
ArrayList<Cart> cartList = (ArrayList<Cart>) session.getAttribute("cartList");
if(map.get("type")[0].equals("add")){
Cart cart = new Cart();
cart.setId(Integer.parseInt(map.get("id")[0]));
cart.setName(map.get("name")[0]);
cart.setSale(Double.parseDouble(map.get("sale")[0]));
cart.setPrice(Double.parseDouble(map.get("price")[0]));
cart.setPic(map.get("pic")[0]);
cart.setNum(Integer.parseInt(map.get("num")[0]));
if(cartList==null){
cartList = new ArrayList<Cart>();
session.setAttribute("cartList", cartList);
}
//判断是否又相同的商品
boolean hasCart = false;
for(Cart c:cartList){
if(c.getId() == cart.getId()){
c.setNum(c.getNum()+cart.getNum());
hasCart=true;
break;
}
}
if(!hasCart)
cartList.add(cart);
}
response.sendRedirect(nextPage);
}
这是一个购物车跳转的servlet,在前一个jsp界面点击跳转之后输出如下错误应该是HashMap<String,String[]> map=(HashMap<String, String[]>) request.getParameterMap();出了问题
 request.getParameterMap()返回的是一个Map,想把它转换为HashMap操作应该怎么办呢

解决方案 »

  1.   

    request.getParameter("key");  这样取出来再放到Map中不行吗
      

  2.   

    Map 和hashMap 是不一样的
      

  3.   

    HashMap<String,String[]> map=(HashMap<String, String[]>) request.getParameterMap();
    这个,绝对是这句话报错
      

  4.   

    这样转
    if (method.getName().equals("getParameterMap")) {
                        Map<String,String[]> map1= (Map<String, String[]>) method.invoke(req, args);
                        Map<String,String[]> map = new HashMap<String, String[]>(map1);
      

  5.   


    Map<String,String[]> map= request.getParameterMap();  这就可以了
      

  6.   

    这个工具类,比你那一坨好多了 protected <T> T getBean(HttpServletRequest request, Class<T> c) {
    try {
    T obj = c.newInstance();
    BeanUtils.copyProperties(obj, getBean(request));
    return obj;
    } catch (Exception e) {
    logger.error(e);
    }
    return null;
    }
    protected Map getBean(HttpServletRequest request) {
    Map bm = new HashMap();
    Map<String, String[]> tmp = request.getParameterMap();
    if (tmp != null) {
    for (String key : tmp.keySet()) {
    String[] values = tmp.get(key);
    bm.put(key, values.length == 1 ? values[0].trim() : values);
    }
    }
    return bm;
    }
      

  7.   

    我也遇到了,tomcat版本过高,换为低版本解决!