java.lang.NumberFormatException : null - cannot read input type

标签 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(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>

这成功地显示了我的 jsp 文件中的 bet.getId() 值。完成后我会将类型更改为“隐藏”。 问题是当我单击“删除”按钮时,它没有准备好我的值。

这是我的 Java:

public static void removeBet(long betID) throws SQLException {

 Connection connection = null;   

    try { 

        DB_Connection connect = new DB_Connection();
        connection=connect.get_Connection();

        String sql = "DELETE FROM bets WHERE id = ?";
        PreparedStatement ps = connection.prepareStatement(sql);

        ps.setLong(1, betID);
        ps.executeUpdate();

      }catch (SQLException e) {
        e.printStackTrace();
    } finally {
        connection.close();
    }

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

最佳答案

我添加答案只是为了将所有评论放在一起。

只有实际单击的提交值才会作为请求参数传递。 这就是为什么当您单击 name="delete"提交时,您会在由 jsp 构建的 html 页面上看到该值,但在请求中看不到该值。

我什至建议您使用 taglib(即 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 的日志: <%@ taglib uri="http://java.sun.com/jsp/jSTL/core"prefix="c"%>
https://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/

问候

关于java.lang.NumberFormatException : null - cannot read input type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59839705/

相关文章:

Java重绘()不工作

SQL:如何对两列上的行进行排序,但在这些列上使用条件

java - 如何在jsp中找到第一个请求

java - 是否有任何正确的解决方案来获取和保存印地语字符并将这些字符显示到 jsp 页面?

java - 是否应该使用 session 来处理表单验证的错误消息?

java - 机器人方法如何访问类中的两个不同对象

java - 数据存储区不显示 false boolean 值

MySQL查询协助

java - 如果标签重复,如何将信息与 html 标签内的正则表达式匹配?

.net - Web 应用程序的最佳 SQL Server 隔离级别?