1

計算を実行する単純な Web アプリを作成しています。加算と減算用の 2 つのボタンがありますが、機能しません。switchステートメントとステートメントを使用しようとしましたifが、どちらも機能していません。問題を理解するのを手伝ってください。

これが私のコードです...

<%
String name = (String) session.getAttribute("name");
if (name==null) {
    name = request.getParameter("name");
    if (name!=null){
        session.setAttribute("name",name);
    }
}

String sum = (String) session.getAttribute("sum");
if (sum==null) {
    sum = "0";
    session.setAttribute("sum",sum);
}
int isum = Integer.parseInt(sum);

String number = request.getParameter("number");
if (number==null){
    number = "0";
}
int inumber = Integer.parseInt(number);
if(request.getParameter("add") != null){ 
    isum += inumber;
    session.setAttribute("sum",""+isum);
}
if(request.getParameter("subtract") != null){
    isum += inumber;
    session.setAttribute("sum",""+isum);
}
%>

<html>
    <head>
    <title>Adding Machine</title>
    </head>

    <body>
        <form method='get' action='adder.jsp'>
            <%
            if (name==null) {
            %>
                <p>
                    Name: <input type='text' name='name' id='name'>
                </p>
                <p>
                    <input type='submit' name='submit' id='submit' value='signin'>
                </p>
            <%
            } else {
            %>
                <p>Welcome, <%=name%>!</p>
                <p>Current sum is: <%=isum%></p>
                <p>
                    Number to add: <input type='text' name='number' id='number' value='add'>
                </p>
                <p>
                     <input type='submit' name='submit' id='submit' value='add'>
                </p>
                <p>
                    <input type='submit' name='submit' id='submit' value='subtract'>
                </p>
            <%
            }
            %>
        </form>
    </body>
</html>
4

3 に答える 3

1

id属性を使用して、各入力要素を一意に識別する必要があります。の 2 つの要素があることに注意してくださいid="submit"。id="add" と id="subtract" を入れるつもりだったと思います。

于 2012-04-16T02:12:46.013 に答える
1

どこかから例をひどくコピーしたようです:

の構文request.getParameter()は次のとおりです。

request.getParameter("formParamName");

詳細については、Java ドキュメントを参照してください。

ここでは、「add」または「subtract」という名前のパラメーターがないため、間違いなく NULL を取得します。

コードを次のように変更します

if(request.getParameter("submit") != null){ 

    if(request.getParameter("submit").equals("add"))
        isum += inumber;
    else if(request.getParameter("submit").equals("subtract"))
        isum -= inumber;
    session.setAttribute("sum",""+isum);
}
于 2012-04-16T06:14:42.507 に答える
0

パラメータを取得する方法が正しくないと思います。次のように使用する必要があります: request.getParameter("xxx") xxx はパラメーター名で、パラメーターの値を取得します。

HTML サンプル コードでは、次のようにする必要があります。

コード内の2つの同じ名前(「送信」)入力タグの代わりに、2つの異なる名前属性を使用して異なる操作を分離する2つの入力タグのHTMLコードを変更することをお勧めします。

于 2012-04-16T03:00:31.443 に答える