... Double price=2;
....
out.print("<td>"+"<a href=");
out.print("/net/cart/AddItemsServlet?itemsId=+name+&price=price&quantity=1&productId=+ProudctId+&userId=+userid+");
out.print(">buy"+"</a></td>");另一页面:
double price = Double.parseDouble(request.getParameter("price"));
   
报错:
.....
Servlet.service() for servlet AddItemsServlet threw exception
java.lang.NumberFormatException: For input string: "price"
.....

解决方案 »

  1.   

    request.getParameter("price")这个肯定是Stringd类型,你怎么能够Double.parseDouble呢,如下就可一乐:
    double price=Double.parseDouble((new Double(request.getParameter("price"))).doubleValue());     
      

  2.   

    我觉得楼上说的不对。请看:
        public static double parseDouble(String s)
                              throws NumberFormatException
    Returns a new double initialized to the value represented by the specified String, as performed by the valueOf method of class Double. 这个操作对String是可以做的。
    我猜你传如的String不是类似这个的“12.33”,可以被转成double类型的。
    而传如的是“aa”这样不能被转成double类型的参数。
      

  3.   

    out.print( "/net/cart/AddItemsServlet?itemsId=+name+&price=price&quantity=1&productId=+ProudctId+&userId=+userid+ ");红色部分你有错误,要是传参数你该这样传:
    Double   price=2
    ........
    out.print( "/net/cart/AddItemsServlet?price=" + price);  //这样第2个price才会被解释为上面的2//你上面的写法第2个price=price,后面的price会被就当作“price”这个字符串,当然在你后面的//parseDouble(String   s) 其实就是parseDouble(“price”) 这里会有错误了。
      

  4.   

    还错:<%
    String userid="yzj";
    Collection products=product.getAllProduct();
    Iterator it=products.iterator();
    while(it.hasNext())
     {
        
        Product temp=(Product)it.next();
        String ProductId=temp.getProductId();
      
        Double price=temp.getPrice();
        String name=temp.getName();
        
    out.print("<tr>");
    out.print("<td>"+ProductId+"</td>");
    out.print("<td>"+temp.getCategoryId()+"</td>");   
    out.print("<td>"+name+"</td>");
    out.print("<td>"+trans(temp.getProducer())+"</td>");
    out.print("<td>"+price+"</td>");
    out.print("<td>"+temp.getQuantity()+"</td>");
    out.print("<td>"+trans(temp.getDescription())+"</td>");
    out.print("<td>"+"<a href=");
    out.print("/net/cart/AddItemsServlet?itemsId=+name+&price=''+price&quantity=1&productId=+ProudctId+&userId=+userid+");
    out.print(">buy"+"</a></td>");
    out.print("</tr>");
      }
      %>
    java.lang.NumberFormatException: For input string: "'' price"
    sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    java.lang.Double.parseDouble(Unknown Source)
    com.yzj.cart.AddItemsServlet.doGet(AddItemsServlet.java:20)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  5.   

     "/net/cart/AddItemsServlet?itemsId=+name+&price= ' '+price&quantity=1&productId=+ProudctId+&userId=+userid+ "); 
    三楼的兄弟都告诉你哪错了 你用单引号括起来能行么
    "/net/cart/AddItemsServlet?itemsId=+name+&price="+price+"&quantity=1&productId=+ProudctId+&userId=+userid+ "); 
      

  6.   

    谢谢上面的老六兄弟,a276202460兄弟,原来是这么回事,明白了,
    out.print("/net/cart/AddItemsServlet?itemsId="+name+"&price="+ price +"&quantity="+quantity+"&productId="+ProductId+"&userId="+userid+" ");