java.lang.NumberFormatException: null

a4535361 2009-06-10 07:13:46
最近在做SSH整合, 在实现修改的时候出现这样的一个错误:
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:415)
at java.lang.Integer.parseInt(Integer.java:497)
at com.wad.web.action.EditdataAction.execute(EditdataAction.java:38)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.wad.system.EncodingFilter.doFilter(EncodingFilter.java:26)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

我把这个功能的代码贴出来,希望有朋友可以为我解答

DAO中的代码:
public CompanyBuss getDataById(int cid) throws Exception {


return (CompanyBuss) this.getHibernateTemplate().get(CompanyBuss.class,new Integer(cid));
}

BO中的代码:
public CompanyBuss getDataById(int cid) throws Exception {
return addsjdao.getDataById(cid);

}

Action中的代码:
public class EditdataAction extends Action {
private AddSJBoInter editdata;
public AddSJBoInter getEditdata() {
return editdata;
}
public void setEditdata(AddSJBoInter editdata) {
this.editdata = editdata;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
EditdataForm editdataForm = (EditdataForm) form;
try{
int cid = Integer.parseInt(request.getParameter("cid"));
request.setAttribute("compan", editdata.getDataById(cid));


return mapping.findForward("sucess");

}catch(Exception e){
e.printStackTrace();
return mapping.getInputForward();
}

}
}
JSP页面的代码:

<body>
<body>
<center>



<table border="1">

<tr>

<th>公司名称 </th>
<th>公司所属类型 </th>
<th>公司信息简介 </th>
<th>修改 </th>
</tr>
<logic:present name="editForm" property="list">
<logic:iterate id="item" name="editForm" property="list">

<tr>

<td>${item.cname} </td>
<td>${item.ctype} </td>
<td>${item.cinfo} </td>
<td> <a href="/T4BOSS/editdata.do? cid=${item.cid }">修改 </a> </td>
</tr>
</logic:iterate>
</logic:present>



</table>

</center>
如果成功后的话会跳到这个页面.可是跳不过去 会报那个错误,有些人说和JSP页面传值在Action定义String类型可以 我以前没定义的时候也可以出来 不知道怎么回事 希望高手帮我解决
<body>
<center>
<table>
<html:hidden property="cid" value="${compan.cid}"/>
<tr>


<td>公司名称: <html:text property="cname" value="${compan.cname}"> </html:text> <br> </td> </tr>
<tr>

<td>
公司所属类型: <html:text property="ctype" value="${compan.ctype}"> </html:text>

</td> </tr>
<tr> <td>公司信息简介: <html:textarea property="cinfo" value="${compan.cinfo}"> </html:textarea> <br> </td>
</tr>

</table>

</center>
</body>



谢谢了 写详细点
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
a4535361 2009-06-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 weiluo12 的回复:]
引用 4 楼 yangkangoo12 的回复:
int cid = Integer.parseInt(request.getParameter("cid")); 这里有问题
当request.getParameter("cid")==""或request.getParameter("cid")==null时都会报错
应改为
int cid = 0;
if(request.getParameter("cid")!=null&&request.getParameter("cid")!=""){
cid = Integer.parseInt(request.getParameter("cid"));
}


定义一个局部变量一般要先初始化,这是一种的编程习惯!
[/Quote]


可以跳到那个页面 可是跳到那个页面后就是空白的 数据迭代不出来
weiluo12 2009-06-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yangkangoo12 的回复:]
int cid = Integer.parseInt(request.getParameter("cid")); 这里有问题
当request.getParameter("cid")==""或request.getParameter("cid")==null时都会报错
应改为
int cid = 0;
if(request.getParameter("cid")!=null&&request.getParameter("cid")!=""){
cid = Integer.parseInt(request.getParameter("cid"));
}
[/Quote]
定义一个局部变量一般要先初始化,这是一种的编程习惯
yangkangoo12 2009-06-11
  • 打赏
  • 举报
回复
int cid = Integer.parseInt(request.getParameter("cid")); 这里有问题
当request.getParameter("cid")==""或request.getParameter("cid")==null时都会报错
应改为
int cid = 0;
if(request.getParameter("cid")!=null&&request.getParameter("cid")!=""){
cid = Integer.parseInt(request.getParameter("cid"));
}
ZangXT 2009-06-10
  • 打赏
  • 举报
回复

先把值 request.getParameter("cid")得到,可以输出一下看是否为合法的值。
emon123 2009-06-10
  • 打赏
  • 举报
回复
说明你传参的时候有个值是null,并没有取得值。debug调试
zhlwwj1314 2009-06-10
  • 打赏
  • 举报
回复
发到ee版块比较好

13,100

社区成员

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

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