提示以下错误:
严重: Servlet.service() for servlet changeservlet threw exception
java.lang.NumberFormatException: For input string: "70.0"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:458)
at java.lang.Integer.parseInt(Integer.java:499)
at servlet.changeservlet.doPost(changeservlet.java:23)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
找到相应的代码处:
                            String title =request.getParameter ("title");
String imagefile =request.getParameter ("imagefile");
String isbn =request.getParameter ("isbn");
int price =Integer.parseInt(request.getParameter ("price"));
int editionnumber =Integer.parseInt(request.getParameter("editionnumber"));
int copyright =Integer.parseInt(request.getParameter ("copyright"));
UserDao userDao = new UserDao();
UserregisterDao userregisterDao = new UserregisterDao();
User user =new User();
user.settitle(title);
user.setimagefile(imagefile);
user.setisbn(isbn);
user.setprice(price);
user.seteditionnumber(editionnumber);
user.setcopyright(copyright);
HttpSession session = request.getSession(true);
changeDao change=new changeDao();
try 
{
change.change(title, imagefile, isbn, price, editionnumber, copyright);

 }
catch(Exception e){
log("Error");
}servletsessionexception

解决方案 »

  1.   

    java.lang.NumberFormatException: For input string: "70.0"数字格式化错误。改为这样试试,Integer.parseInt转换,不能有空格和非数字字符
    int price =Integer.parseInt(request.getParameter ("price").trim());
    int editionnumber =Integer.parseInt(request.getParameter("editionnumber").trim());
    int copyright =Integer.parseInt(request.getParameter ("copyright").trim());
      

  2.   

    price的类型为:numeric(18,0),我也试过修改成其它类型好像也不行,应该改为???
      

  3.   

    用Double.parseDouble()解析吧,又不是整数,靠
      

  4.   

    Integer.parseInt(request.getParameter ("price").trim())这样的都改为
    Double.parseDouble(XXX)
      

  5.   

    at servlet.changeservlet.doPost(changeservlet.java:23)为:
    int price =Integer.parseInt(request.getParameter ("price"));
    价格的数据类型不对,numeric不行?那???
      

  6.   

    Double.parseDouble(request.getParameter ("price").trim());这样会错?怎么可能,你“70.4”就不是整形了,当然不能用Integer.parseInt了
      

  7.   

    int price =Double.parseDouble(request.getParameter("price").trim());
    过不了编译
      

  8.   

    int price =Double.parseDouble(request.getParameter("price").trim());看看人家是什么格式的啊,是double啊,你还付给int类型,改为:
    Double price =Double.parseDouble(request.getParameter("price").trim());顺便把change方法里面的参数类型也改为Double 
      

  9.   

    user.setprice(price);???可以再详细些头有点不好使。。麻烦了
      

  10.   

    把你所有int性德属性都改为double类型,再用Double.parseDouble解析就不会报错了,Integer.parseInt解析double类型的会报错,就行70.4就是double类型。
      

  11.   

    改了,可user.setprice(price);这几句跟chang方法的change.change(title, imagefile, isbn, price, editionnumber, copyright);
    就提示错误。。
      

  12.   

    不告诉你把int类型的都改为double了吗?在setprice所在的类里改
      

  13.   

    看着你的追问;就想吐血;想问问你是学生还是工作者;不管你是谁;先去把这种最基础的东西弄扎实点吧;
    你user对象的price类型是否定义为double  ;你传递的change方法里面的price类型又是什么。你检查下就知道了啊;debug就知道是哪句代码出了问题。
      

  14.   

    非常感谢你解惑
    改了,运行,可显示这样的错误:严重: Servlet.service() for servlet changeservlet threw exception
    java.lang.NoSuchMethodError: entity.User.setprice(D)V
    at servlet.changeservlet.doPost(changeservlet.java:32)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
    at servlet.changeservlet.doPost(changeservlet.java:32)为:
    user.setprice(price);
      

  15.   

    NoSuchMethodError  entity.User.setprice(D)改就该全,所有关联的,包括实体类的映射文件,User这个映射文件里面的没有改吧