解决Java.lang.NumberFormatException: For input string: "image/" 错误 - JSP 页面图片路径问题
{"title":"请分析以下报错并修改\norg.apache.jasper.JasperException: 在 [22] 行处理 [/userinfo.jsp] 时发生异常\n\n19: <div id="msgs">\n20: <div id="headermsg">\n21: <div>\n22: <img style="float:left" id="foreshow" src="${"image/" + imageId.toString() + ".bmp"}" alt="澶村儚" />\n23: <p style="font-size:30px">${userinfo.name}
\n24: <p style="font-size:15px">绮変笣鏁帮細${userinfo.fansNum}\n25: </div>\n\n\nStacktrace:\n\torg.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:617)\n\torg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514)\n\torg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)\n\torg.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:741)\n\torg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\tbox.controller.UserInfoServlet.doGet(UserInfoServlet.java:31)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:634)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:741)\n\torg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\nRoot Cause\n\njava.lang.NumberFormatException: For input string: "image/"\n\tsun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)\n\tsun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)\n\tjava.lang.Double.parseDouble(Double.java:538)\n\tjava.lang.Double.valueOf(Double.java:502)\n\torg.apache.el.lang.ELArithmetic$DoubleDelegate.coerce(ELArithmetic.java:150)\n\torg.apache.el.lang.ELArithmetic.coerce(ELArithmetic.java:385)\n\torg.apache.el.lang.ELArithmetic.add(ELArithmetic.java:258)\n\torg.apache.el.parser.AstPlus.getValue(AstPlus.java:40)\n\torg.apache.el.parser.AstPlus.getValue(AstPlus.java:38)\n\torg.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190)\n\torg.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:944)\n\torg.apache.jsp.userinfo_jsp._jspService(userinfo_jsp.java:131)\n\torg.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:741)\n\torg.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)\n\torg.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)\n\torg.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:741)\n\torg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\tbox.controller.UserInfoServlet.doGet(UserInfoServlet.java:31)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:634)\n\tjavax.servlet.http.HttpServlet.service(HttpServlet.java:741)\n\torg.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n):注意 主要问题的全部 stack 信息可以在 server logs 里查看内容:根据报错信息,问题出现在userinfo.jsp的第22行,具体问题是java.lang.NumberFormatException: For input string: "image/",意味着在这里尝试将字符串"image/"转换为数字时出错。\n\n原因是在这一行中,使用了EL表达式${\"image/\" + imageId.toString() + \".bmp\"}来构建图片的src属性。但是,根据报错信息可以看出,imageId的值是一个字符串,而不是数字。因此,在进行字符串拼接时会出现错误。\n\n要解决这个问题,需要确保imageId的值是一个数字。可以通过在代码中进行适当的类型转换来实现。修改的代码如下:\n\n22: <img style="float:left" id="foreshow" src="${"image/" + Integer.parseInt(imageId) + ".bmp"}" alt="澶村儚" />\n\n这样,将imageId转换为整数后再进行字符串拼接,就能得到正确的图片路径。\n\n另外,需要确保imageId的值是一个合法的数字字符串,否则仍然会出现NumberFormatException错误。如果imageId的值不确定,可以在代码中使用try-catch块来捕获异常并进行处理。
原文地址: https://www.cveoy.top/t/topic/pKzB 著作权归作者所有。请勿转载和采集!