0

2 つのテキスト フィールドと 2 つの数字を追加するための 1 つの送信ボタンを含む単純な 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

5 に答える 5

0

まず第一に、スクリプレットを避けてください。次に、int値を取得する場合は、次を使用できます。

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

int num = Integer.parseInt(request.getParameter("a"))、とにかくあなたが好きななど

ああ、今私はわかります-あなたはヌルを持っています。つまり、そのパラメータの値は実際には空です。null値を確認します。

于 2013-03-05T14:06:23.120 に答える
0

GETを介して最初にページを要求するとき、指定しない限り、すべてのパラメーターはnullです。したがって、/ index.jspをGETするだけの場合(このページがこのページと呼ばれていると仮定)、パラメーター「a」と「b」は両方ともnullであり、Integer.parseInt()は例外をスローします。

また、他の人のアドバイスを受けて、ここでスクリプトレットを使用しないようにする必要があります。

于 2013-03-05T14:06:56.027 に答える
0

あなたの完全なURLパスは何ですか?

私の推測では、aとbのパラメーターはありません。その結果、に提供nullされInteger.parseInt()ます。

于 2013-03-05T14:07:00.607 に答える
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>
于 2013-03-05T19:33:57.940 に答える