javax.servlet.ServletException: java.lang.NumberFormatException: null
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:415)
java.lang.Integer.parseInt(Integer.java:497)
mystruts.action.EditAction.execute(EditAction.java:47)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)。
代码如下
editaction:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
EditForm editForm = (EditForm) form;// TODO Auto-generated method stub
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
StudentDAO crud=(StudentDAO)context.getBean("StudentDAO");
String ID=request.getParameter("ID");
int id=Integer.parseInt(ID);
Student student=crud.findById(id);
student.setInformation(editForm.getInformation());
student.setAge(editForm.getAge());
student.setName(editForm.getName());
crud.update(student);
return mapping.findForward("mywork");
}
edit.jsp:
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for EditForm form</title>
</head>
<body>
<html:form action="/edit">
information : <html:text property="information"/><html:errors property="information"/><br/>
name : <html:text property="name"/><html:errors property="name"/><br/>
age : <html:text property="age"/><html:errors property="age"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
mywork.jsp: (负责跳转到edit页面)
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ page import="java.sql.*" %>
<script type="text/javascript">
function check1(ID){
if(confirm("delete")){
location.href = "delete.do?ID=" + ID;
}
}
function check2(ID){
if(confirm("search")){
location.href = "search.do?ID=" + ID;
}
}
function check3(ID){
if(confirm("edit")){
location.href = "form/edit.jsp? ID=" + ID ;
}
}
</script>
<body>
<input type="button" value="insert" onclick="javascript:location.href='http://localhost:8080/manage/form/insert.jsp'">
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","8616158");
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery("select * from student");
if (rs.next())
{
%>
<table><tr><th>id</th><th>name</th></tr>
<% do{
%>
<tr>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("id")%></td>
<td><input type= button value= delete onclick=check1(<%=rs.getString("id")%>)></td>
<td><input type=button value=search onclick=check2(<%=rs.getString("id")%>)></td>
<td><input type=button value=edit onclick=check3(<%=rs.getString("id")%>)></td>
</tr>
<%
}while(rs.next());
%>
</table>
<%
}
%>
</body>
10 个解决方案
#1
来个高手解决下啊,谢谢了
#2
错误不都已经说了是Numberformat错了.....看看你输入的信息呗
#3
edit.jsp
加上<html:hidden property="id"/>
int id=Integer.parseInt(ID);
这句发生错误了 空指针 很常见的错误
加上<html:hidden property="id"/>
int id=Integer.parseInt(ID);
这句发生错误了 空指针 很常见的错误
#4
NumberFormatException.....
问题都已经说出来了...
自己看一下吧...
问题都已经说出来了...
自己看一下吧...
#5
是空指针错误,现在我已经吧id号赋值给了jsp页面,现在要获取edit页面的那个id号,从而进行更新
#6
你赋值的id是进入edit.jsp的时候用的。但是edit.jsp提交到edit.do必须按照3楼所说的,重新提交一次id,否则id是空值。
#7
调试一下啊,看id到底有没有值啊,再改
#8
3楼的方法我也试了,在edit页面加了那句话还是不行
#9
JDK1.5版本以下的不能自动装箱和拆箱,你看看是不是这个问题。
#10
问题已经解决。谢谢诶
#1
来个高手解决下啊,谢谢了
#2
错误不都已经说了是Numberformat错了.....看看你输入的信息呗
#3
edit.jsp
加上<html:hidden property="id"/>
int id=Integer.parseInt(ID);
这句发生错误了 空指针 很常见的错误
加上<html:hidden property="id"/>
int id=Integer.parseInt(ID);
这句发生错误了 空指针 很常见的错误
#4
NumberFormatException.....
问题都已经说出来了...
自己看一下吧...
问题都已经说出来了...
自己看一下吧...
#5
是空指针错误,现在我已经吧id号赋值给了jsp页面,现在要获取edit页面的那个id号,从而进行更新
#6
你赋值的id是进入edit.jsp的时候用的。但是edit.jsp提交到edit.do必须按照3楼所说的,重新提交一次id,否则id是空值。
#7
调试一下啊,看id到底有没有值啊,再改
#8
3楼的方法我也试了,在edit页面加了那句话还是不行
#9
JDK1.5版本以下的不能自动装箱和拆箱,你看看是不是这个问题。
#10
问题已经解决。谢谢诶