Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 为什么我会收到NumberFormatException?_Java_Jsp_Numberformatexception - Fatal编程技术网

Java 为什么我会收到NumberFormatException?

Java 为什么我会收到NumberFormatException?,java,jsp,numberformatexception,Java,Jsp,Numberformatexception,我做了一个按钮来改变航班的状态。但是我收到了,数字形式的感觉。下面我介绍了从数据库获取数据的方法 private Flight getFlight(ResultSet rs) throws SQLException, DBException { Flight flight = new Flight(); flight.setId(rs.getInt("ID")); flight.setName(rs.getString(NAME));

我做了一个按钮来改变航班的状态。但是我收到了,数字形式的感觉。下面我介绍了从数据库获取数据的方法

private Flight getFlight(ResultSet rs) throws SQLException, DBException {
        Flight flight = new Flight();
        flight.setId(rs.getInt("ID"));
        flight.setName(rs.getString(NAME));
        flight.setStartPoint(rs.getString("STARTPOINT"));
        flight.setEndPoint(rs.getString("ENDPOINT"));
        flight.setNumber(rs.getInt("NUMBER"));
        flight.setDepartureDate(rs.getString("DEPARTURE_DATE"));
        flight.setDepartureTime(rs.getInt("DEPARTURE_TIME"));
        flight.setStatus(rs.getBoolean("STATUS"));
        flight.setAircompanyId(rs.getInt("AIRCOMPANY_ID"));
        return flight;
    }

public Flight findFlightById (int id) throws DBException{
        Flight flight = null;
        for (Flight f : getFlights()) {
            if (f.getId() == id) {
                flight = f;
                break;
            }
        }
        return flight;
    }

public boolean updateFlightStatusById(int id)throws DBException{
        Connection con = null;
        PreparedStatement pstmt = null;
        Boolean status = null;
        try {
            con = getConnection();
            pstmt = con.prepareStatement(UPDATE_FLIGHT_STATUS);
            Flight flight = findFlightById(id);
            int k = 1;
            if (flight.isStatus()) {
                pstmt.setBoolean(k++, false);
                status = true;
            } else {
                pstmt.setBoolean(k++, true);
                status = false;
            }
            pstmt.setInt(k++, flight.getId());
            pstmt.executeUpdate();
            con.commit();
        } catch (SQLException e) {
            rollback(con);
            throw new DBException("cannot update flight status", e);
        } finally {
            close(con);
            close(pstmt);
        }
        return status;
    }
然后我在另一个类中调用接收到的方法,该类返回jsp页面的路径

    int id = Integer.parseInt(request.getParameter("flightId")); // here i get an exception
            db.updateFlightStatusById(id);
session.setAttribute("flights", flight);
我还将提供jsp页面的一些代码

<c:forEach var="bean" items="${sessionScope.flights}">
<td><form action="controller" method="post">
                            <input type="hidden" name="command" value="getFlights">
                            <input type="hidden" name="flightId" value="${bean.id}">
                            <c:if test="${bean.status eq true}">
                                <input type="submit" value="<fmt:message key="correct"/>">
                            </c:if>
                            <c:if test="${bean.status eq false}">
                                <input type="submit" value="<fmt:message key="incorrect"/>">
                            </c:if>

                        </form></td>
</c:forEach>
我已经做了类似的任务,但没有这样的错误。我错在哪里了?我会感谢你的帮助

我的sql请求 私有静态最终字符串更新\飞行\状态=更新飞行集状态=?其中id=

从文档中可以看出,这非常简单

Integer.parseIntString

参数: s—包含要分析的int表示形式的字符串 返回: 参数以十进制表示的整数值。 抛出: NumberFormatException-如果字符串不包含可解析整数

数字格式异常

抛出以指示应用程序已尝试将字符串转换为其中一种数字类型,但该字符串没有适当的格式


如果调试代码,您会发现id变量为null或具有无法转换为整数的其他值。检查请求参数映射以查看flightId参数是否存在且不为null。

那么,request.getParameterflightId的值到底是多少?异常的堆栈跟踪将告诉您它无法解析的值。没问题。如果你觉得答案是令人满意的,请考虑将它标记为接受。