java.lang.NumberFormatException:null-无法读取输入类型

java.lang.NumberFormatException:null-无法读取输入类型,java,sql,jsp,servlets,Java,Sql,Jsp,Servlets,我试图在单击按钮时从SQL中删除一些数据。但是,我一直收到错误java.lang.NumberFormatException:单击按钮时为null。这让我感到困惑,因为我可以在jsp.file中显示ID,所以我知道该值已被选中并显示 这是我的jsp文件: if (request.getParameter("delete") != null){ long betID = Long.parseLong(request.getParameter("id")); System.out.print(b

我试图在单击按钮时从SQL中删除一些数据。但是,我一直收到错误java.lang.NumberFormatException:单击按钮时为null。这让我感到困惑,因为我可以在jsp.file中显示ID,所以我知道该值已被选中并显示

这是我的jsp文件:

if (request.getParameter("delete") != null){
 long betID = Long.parseLong(request.getParameter("id"));
 System.out.print(betID);
}

<form action="newBet.jsp" method="get">
    <fieldset>
        <input class="btn btn-default" type="submit" name="w" value="Vundet"/> 
        <input class="btn btn-default" type="submit" name="L" value="Tabt" /> 
        <input type="submit" name="id" value="<%=bet.getId()%>"/>
    </fieldset>
</form>

在我的代码中,我的betID的值被设置为long。我希望你们中的一些人能帮助我。我检查过类似的问题,但不幸的是,我无法解决这些问题。谢谢。

我添加答案只是为了让所有的评论保持一致

只有实际单击的submit的值将作为请求参数传递。 这就是为什么当您单击name=“delete”submit时,您会看到从jsp构建的html页面上的值,而不是请求中的值

我甚至建议您使用taglib(es.JSTL),而不是用JSP编写java代码

例如,假设您有一个名为“bet”的请求或页面参数包含bet bean

<form action="newBet.jsp" method="get">
    <fieldset>
        <input class="btn btn-default" type="submit" name="w" value="Vundet"/> 
        <input class="btn btn-default" type="submit" name="L" value="Tabt" /> 
        <input type="submit" name="id" value="${bet.id}"/>
    </fieldset>
</form>

还要获取JSTL的日志:


考虑到

您是否有机会再次使用name=delete提交?(从您编写的代码中可以看出)。HTML将只发送您单击的提交值。其他将为空。(如果最好将id存储在隐藏或不可写的文本输入中)是的,我会。我也忘了在代码里写上。我的另一个名为delete的submit是:HTML只发送您单击的submit值。其他将为空。(以防最好将id存储在隐藏或不可写的文本输入中)非常感谢。我还是个新手,但这实际上解决了我的问题。非常感谢。
<form action="newBet.jsp" method="get">
    <fieldset>
        <input class="btn btn-default" type="submit" name="w" value="Vundet"/> 
        <input class="btn btn-default" type="submit" name="L" value="Tabt" /> 
        <input type="submit" name="id" value="${bet.id}"/>
    </fieldset>
</form>