报错ParameterMap cannot be cast to java.util.HashMap的问题

wch6887164 2017-10-30 09:51:40
代码片段如下

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操作应该怎么办呢
...全文
1272 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuichuanjin 2019-05-09
  • 打赏
  • 举报
回复
我也遇到了,tomcat版本过高,换为低版本解决!
别闹腰不好 2019-03-01
  • 打赏
  • 举报
回复
这个工具类,比你那一坨好多了 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; }
别闹腰不好 2019-03-01
  • 打赏
  • 举报
回复
引用 3 楼 hp961218 的回复:
HashMap<String,String[]> map=(HashMap<String, String[]>) request.getParameterMap(); 这个,绝对是这句话报错
Map<String,String[]> map= request.getParameterMap(); 这就可以了
mmmmm12342 2019-03-01
  • 打赏
  • 举报
回复
这样转
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);
hp961218 2017-12-27
  • 打赏
  • 举报
回复
HashMap<String,String[]> map=(HashMap<String, String[]>) request.getParameterMap(); 这个,绝对是这句话报错
a584429317 2017-12-27
  • 打赏
  • 举报
回复
Map 和hashMap 是不一样的
清晨v 2017-10-31
  • 打赏
  • 举报
回复
request.getParameter("key"); 这样取出来再放到Map中不行吗

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧