jsp页面中的数字格式异常

时间:2013-03-05 14:03:59

标签: jsp exception

我开发了一个简单的jsp页面,其中包含两个文本字段和一个提交按钮以添加两个数字。在浏览器中编译后,它显示错误:

HTTP Status 500

org.apache.jasper.JasperException: java.lang.NumberFormatException: null

这里是代码:

       <%-- 
Document   : index
Created on : Mar 5, 2013, 7:21:57 PM
Author     : VIJI
       --%>

          <%@page contentType="text/html" pageEncoding="UTF-8"%>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
               "http://www.w3.org/TR/html4/loose.dtd">

    <html>
     <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <form>
        <input type="text" name="a"></input>
        <input type="text" name="b"></input>
        <input type="submit" value="ADD"></input>
        <%!
         int a,b,c;

        %>
        <%

         a=Integer.parseInt(request.getParameter("a"));
         b=Integer.parseInt(request.getParameter("b"));
         c=a+b;

        %>
        Addition of two numbers is<%=c%>
    </form>
</body>

4 个答案:

答案 0 :(得分:0)

首先,请避免使用scriplets。然后,如果你想获得int值,你可以使用:

int num = Integer.valueOf(request.getParameter("a"));

int num = Integer.parseInt(request.getParameter("a"))等,无论如何你喜欢

哦,现在我明白了 - 你有空。这意味着,该参数的值实际上是空的。检查空值。

答案 1 :(得分:0)

当您第一次通过GET请求页面时,除非您指定它们,否则所有参数都为null。所以,如果你只是GET /index.jsp(假设这个页面被调用),参数“a”和“b”都是null,而Integer.parseInt()抛出异常。

另外,你应该听从别人的建议,避免在这里使用scriptlet。

答案 2 :(得分:0)

您的完整网址路径是什么?

我的猜测是,你没有&amp;参数。湾这导致null提供Integer.parseInt()

答案 3 :(得分:0)

在第一次调用时,您将不会获得导致a的参数bNullPointerException的任何值。使用if条件检查值,如下所示。

<%-- 
Document   : index
Created on : Mar 5, 2013, 7:21:57 PM
Author     : VIJI
       --%>

          <%@page contentType="text/html" pageEncoding="UTF-8"%>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
               "http://www.w3.org/TR/html4/loose.dtd">

    <html>
     <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <form>
        <input type="text" name="a"></input>
        <input type="text" name="b"></input>
        <input type="submit" value="ADD"></input>
        <%!
         int a,b,c;

        %>
        <%
         if (request.getParameter("a") != null){
         a=Integer.parseInt(request.getParameter("a"));
         }else{a=0;}
         if (request.getParameter("b") != null){
         b=Integer.parseInt(request.getParameter("b"));
         }else{b=0;}
         c=a+b;

        %>
        Addition of two numbers is<%=c%>
    </form>
</body>