java.lang.NumberFormatException: servlet 中的 null 错误
java.lang.NumberFormatException: null Error in servlet
Index.jsp:
<form action="stu_app_serv" method="post">
<table class="table">
<%
try {
String sql = "SELECT * FROM students WHERE approved = ?";
Connection conn = DBConnect.connect();
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 0);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
%>
<tbody>
<tr>
<td><input disabled name="id" value="<%=rs.getInt("st_id")%>"></td>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("university")%></td>
<td><%=rs.getString("index_no")%></td>
<td><%=rs.getString("email")%></td>
<td>
<button class="btn btn-success" type="submit" name="approve">Approve </button>
<button class="btn btn-danger" type="submit" name="decline">Decline</button>
</td>
</tr>
</tbody>
<%}
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
System.out.println("Error " + e.getMessage());
}
%>
</table>
</form>
Servlet 文件是 stu_app_serv.java:
String id = request.getParameter("id");
int x = Integer.parseInt(id);
st_id 是学号。显示以下运行时错误:
java.lang.NumberFormatException: null
在 servlet 行
int x = Integer.parseInt(id);
如何修复此错误?
先检查id是否不为null,必须是合法的数字。您可以使用 Regex 来检查或捕获该异常..
您应该处理 Null 值并将其放入 try catch 块中。一件事不要在表示层执行业务逻辑。因为你在这里写代码 jsp 而不是在你的服务 class 或 servlet.
String id = request.getParameter("id");
int x = 0;
if(id!=null){
try{
x = Integer.parseInt(id);
}catch(Exception e){
}
}
创建这个简单程序时:
public static void main(String[] args)
{
String id = null;
int x = Integer.parseInt(id);
}
你可以看到你会得到一个NPE。
因此可以假定您发送的 id
为空。
Index.jsp:
<form action="stu_app_serv" method="post">
<table class="table">
<%
try {
String sql = "SELECT * FROM students WHERE approved = ?";
Connection conn = DBConnect.connect();
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 0);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
%>
<tbody>
<tr>
<td><input disabled name="id" value="<%=rs.getInt("st_id")%>"></td>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("university")%></td>
<td><%=rs.getString("index_no")%></td>
<td><%=rs.getString("email")%></td>
<td>
<button class="btn btn-success" type="submit" name="approve">Approve </button>
<button class="btn btn-danger" type="submit" name="decline">Decline</button>
</td>
</tr>
</tbody>
<%}
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
System.out.println("Error " + e.getMessage());
}
%>
</table>
</form>
Servlet 文件是 stu_app_serv.java:
String id = request.getParameter("id");
int x = Integer.parseInt(id);
st_id 是学号。显示以下运行时错误:
java.lang.NumberFormatException: null
在 servlet 行
int x = Integer.parseInt(id);
如何修复此错误?
先检查id是否不为null,必须是合法的数字。您可以使用 Regex 来检查或捕获该异常..
您应该处理 Null 值并将其放入 try catch 块中。一件事不要在表示层执行业务逻辑。因为你在这里写代码 jsp 而不是在你的服务 class 或 servlet.
String id = request.getParameter("id");
int x = 0;
if(id!=null){
try{
x = Integer.parseInt(id);
}catch(Exception e){
}
}
创建这个简单程序时:
public static void main(String[] args)
{
String id = null;
int x = Integer.parseInt(id);
}
你可以看到你会得到一个NPE。
因此可以假定您发送的 id
为空。