JSP,Integer.parseInt 抛出错误,即使在测试空值时也是如此



这里是代码

if(var!=null) {
                        int varInt= Integer.parseInt(var);
                        method.setProp(varInt);
              }

经过一些研究,当我们不测试 null 时,它通常会抛出错误,但我是,所以有什么问题?

错误

org.apache.jasper.JasperException: An exception occurred processing JSP page /TravelSearch.jsp at line 81               
80:                    if(var!=null) {
81:                         int varInt= Integer.parseInt(var);
82:                         method.setProp(varInt);
83:                     }
84:                     
Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:469)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
cause mère
java.lang.NumberFormatException: For input string: ""

看看Jon Skeet的这个答案。

https://stackoverflow.com/a/1486082/891261

这就是您想要的 - 一种方法,用于检查字符串是否可以解析为数字,并在不能解析时返回明显的非法值,然后您可以检查并对其执行操作。

您尝试解析的数字不是空的,它是一个空字符串""。 堆栈跟踪在这里告诉你:

java.lang.NumberFormatException: For input string: ""

更改测试以执行此操作:

if(var!=null && !"".equals(var)) {

最新更新