Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP页面上的加减按钮不是';行不通_Java_Html_Jsp - Fatal编程技术网

Java JSP页面上的加减按钮不是';行不通

Java JSP页面上的加减按钮不是';行不通,java,html,jsp,Java,Html,Jsp,我正在编写一个简单的web应用程序来执行计算。我有两个按钮,用于加法和减法,但它们不起作用。我尝试使用switch语句和if语句,但两者都不起作用。你能帮我理解这个问题吗 这是我的密码 <% String name = (String) session.getAttribute("name"); if (name==null) { name = request.getParameter("name"); if (name!=null){ session.se

我正在编写一个简单的web应用程序来执行计算。我有两个按钮,用于加法和减法,但它们不起作用。我尝试使用
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>

加法器

姓名:

欢迎

当前金额为:

要添加的编号:


您需要使用
id
属性来唯一标识每个输入元素。请注意,有两个元素带有
id=“submit”
。我想你是想把id=“add”和id=“subtract”放进去。我想你获取参数的方法不对。 你应该像这样使用: request.getParameter(“xxx”) 其中xxx是您的参数名,用于获取参数的值

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

我建议您修改两个输入标记的html代码 使用两个不同的名称属性分隔不同的操作:添加/删除,
您的代码中没有两个相同名称(“提交”)的输入标记。

似乎您从某个地方复制了一个错误的示例:

request.getParameter()的语法是:

request.getParameter("formParamName");
更多信息请访问:

在这里,您肯定会得到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);
}

什么不起作用?这个文件名为
adder.jsp
?我在互联网上看到了那个视频;格罗迪!是的,当我点击add或subtract时,填充名为adder.jsp。什么都没有发生。哎呀,我的意思是说“name”,而不是“id”,尽管id应该仍然是唯一的。name属性用于参数名称,value用于参数值。非常感谢您的帮助