JSP,Integer.parseInt即使在测试null

时间:2015-05-01 16:58:34

标签: java jsp

这是代码

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: ""

2 个答案:

答案 0 :(得分:0)

看看Jon Skeet的回答。

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

这就是你想要的 - 一种方法,它检查字符串是否可以被解析为一个数字并在它没有时返回一个明显的非法值,然后你可以检查并采取行动。

答案 1 :(得分:-1)

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

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

更改您的测试以执行此操作:

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