JSP 异常:NumberFormatException: For input string: "name" - 解决方法
"org.apache.jasper.JasperException: 在 [23] 行处理 [/userinfo.jsp] 时发生异常\n\n20: \u003cdiv id="headermsg"\u003e\n21: \u003cdiv\u003e\n22: \u003cimg style="float:left" id="foreshow" src="${link}" alt="澶村儚" /\u003e\n23: \u003c p style="font-size:30px"\u003e${userinfo.name}\u003c/p\u003e\n24: \u003c p style="font-size:15px"\u003e绮変笣鏁帮細${userinfo.fansNum}\u003c/p\u003e\n25: \u003c/div\u003e\n26: \u003c p style="font-size:20px"\u003e${userinfo.introduction}\u003c/p\u003e\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:25)\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: "name"\n\tjava.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n\tjava.lang.Integer.parseInt(Integer.java:580)\n\tjava.lang.Integer.parseInt(Integer.java:615)\n\tjavax.el.ListELResolver.coerce(ListELResolver.java:150)\n\tjavax.el.ListELResolver.getValue(ListELResolver.java:67)\n\torg.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:113)\n\torg.apache.el.parser.AstValue.getValue(AstValue.java:169)\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:134)\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:25)\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\n报错信息显示在第23行处理/userinfo.jsp时发生了异常。根本原因是java.lang.NumberFormatException: For input string: "name",即将"name"转换成数字时发生了格式异常。\n\n根据代码,可以看到在第23行使用了EL表达式${userinfo.name}来获取用户的名字。然而,EL表达式默认将表达式中的值解析为数字类型,而"name"是一个字符串,因此会抛出NumberFormatException异常。\n\n为了解决这个问题,可以将EL表达式${userinfo.name}改为${userinfo.name},即去掉${}中的括号,这样就可以正确获取用户的名字了。\n\n修改后的代码如下:\n\n23: \u003c p style="font-size:30px"\u003e${userinfo.name}\u003c/p\u003e
原文地址: https://www.cveoy.top/t/topic/pIs0 著作权归作者所有。请勿转载和采集!