JSP页面上的“添加和减去”按钮不起作用

时间:2012-04-16 02:05:22

标签: java html jsp

我正在编写一个执行计算的简单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>

3 个答案:

答案 0 :(得分:1)

您需要使用id属性来唯一标识每个输入元素。请注意,您有两个id="submit"元素。我认为你的意思是把id =&#34;添加&#34;和id =&#34;减去&#34;。

答案 1 :(得分:1)

似乎你从某个地方复制了很多例子:

request.getParameter()的语法是:

request.getParameter("formParamName");

阅读更多内容:Java Docs

在这里你肯定会得到NULL,因为没有名为“add”或“subtract”的参数。

将您的代码更改为

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);
}

答案 2 :(得分:0)

我认为你获取参数的方式不对。 你应该使用像:    用request.getParameter( “XXX”) 其中xxx是您的参数名称,以获取参数的值。

在你的html示例代码中,它应该是:request.getParameter(“submit”) 不是request.getParameter(“add”)或(“substract”),它们都将返回null, 所以什么都不会发生。

我建议你修改那两个输入标签的html代码 使用两个不同的name属性来分隔不同的操作:add / substract, 而不是代码中的两个相同名称(“提交”)输入标记。