使用struts+spring+hibernate出现 Servlet.service() for servlet action threw exception

fs216 2009-01-12 09:24:44
advanceId=null
09:18:31,968 WARN RequestProcessor:516 - Unhandled Exception thrown: class java.lang.NumberFormatException
09:18:32,000 ERROR [action]:253 - Servlet.service() for servlet action threw exception
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.sgoa.struts.action.AdvanceDelAction.execute(AdvanceDelAction.java:42)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.sgoa.helper.GbkFilter.doFilter(GbkFilter.java:29)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)

那位遇到过类似的错误希望能帮忙!
...全文
291 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wj_18 2009-01-12
  • 打赏
  • 举报
回复
类型转换错误

你的值可能不是一个纯的数字形式
fs216 2009-01-12
  • 打赏
  • 举报
回复
解决了,粗心导致。再次谢谢
zhj92lxs 2009-01-12
  • 打赏
  • 举报
回复
你的表单怎么提交的
fs216 2009-01-12
  • 打赏
  • 举报
回复
可能还是配置文件的问题吧,谢谢各位!
fengfeng925 2009-01-12
  • 打赏
  • 举报
回复
String advanceId=request.getParameter("advanceNo");
按理说这是应该能获取到的,如果楼主的表单提交了的话。如果提交了获取不到,那就要看一下配置文件了,是否配置了form-bean
glglglglglgllll 2009-01-12
  • 打赏
  • 举报
回复
obj.getAdvanceNo()这个值为空。自己检查下OBJ
fs216 2009-01-12
  • 打赏
  • 举报
回复
对,就是为什么取不到值。下面是部分代码:
我在form里设<input type="hidden" value="<%=obj.getAdvanceNo()%>" name="advanceNo">
在action里public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
log.debug("UserAddSubAction.execute()");

String advanceId=request.getParameter("advanceNo");
System.out.println("advanceId="+advanceId);
Integer advanceNo=Integer.parseInt(request.getParameter("advanceNo"));
advanceService.delete(advanceNo);
return mapping.findForward("success");

}
怎么取不到
glglglglglgllll 2009-01-12
  • 打赏
  • 举报
回复
贴下代码。这个是类型转换的时候为空
walkcode 2009-01-12
  • 打赏
  • 举报
回复
我也遇到过和楼主一样的问题 等待答案中......
Kevin-林 2009-01-12
  • 打赏
  • 举报
回复
应该是 obj.getAdvanceNo()获取的值为null,而<%=obj.getAdvanceNo()%>表达式的输出值是调用toString,所以你可以看一下页面的源代码该隐藏域的value="null",实际上,request.getParameter("advanceNo")获取到的值是字符串"null",可以debug一下

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧