一、异常见下:
Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.iwtxokhtd.action.CreateOrderItemAction.execute(CreateOrderItemAction.java:47)
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.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
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 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:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
二、控制器代码如下:
/**
*
*/
package com.iwtxokhtd.action;import java.util.Date;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;import com.iwtxokhtd.dao.CreateOrderItemDao;
import com.iwtxokhtd.form.OrderItemBeanForm;/**
* @author iwtxokhtd
*
*/
public class CreateOrderItemAction extends Action{ //航班日程安排dao
private CreateOrderItemDao itemdao; @Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
//错误消息对象
ActionMessages errors=new ActionMessages();
//从模型中获取数据
String id=(String)((OrderItemBeanForm)form).getId();
String year=(String)((OrderItemBeanForm)form).getYear();
String month=(String)((OrderItemBeanForm)form).getMonth();
String day=(String)((OrderItemBeanForm)form).getDay();
//转换字符格式
id=new String(id.getBytes("ISO-8859-1"),"gb2312");
year=new String(year.getBytes("ISO-8859-1"),"gb2312");
month=new String(month.getBytes("ISO-8859-1"),"gb2312");
day=new String(day.getBytes("ISO-8859-1"),"gb2312");
Long lid=new Long(Long.parseLong(id));
Date date=new Date(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
//若id,year,month,day为空,则报错
if(id==null||year==null||month==null||day==null)
{
errors.add("fail_1",new ActionMessage("CreateOrderItemAction.c"));
saveErrors(request,errors);
return mapping.getInputForward();
}
//保存新的航班日程安排
if(!itemdao.CreateOrderItem(lid, date))
{
errors.add("fail_2", new ActionMessage("CreateOrderItemAction.a"));
saveErrors(request,errors);
}
else
{
errors.add("succeed_1",new ActionMessage("CreateOrderItemAction.b"));
saveErrors(request,errors);
}
return mapping.findForward("createok");
}
public CreateOrderItemDao getItemdao() {
return itemdao;
} public void setItemdao(CreateOrderItemDao itemdao) {
this.itemdao = itemdao;
}
}
Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.iwtxokhtd.action.CreateOrderItemAction.execute(CreateOrderItemAction.java:47)
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.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
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 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:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
二、控制器代码如下:
/**
*
*/
package com.iwtxokhtd.action;import java.util.Date;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;import com.iwtxokhtd.dao.CreateOrderItemDao;
import com.iwtxokhtd.form.OrderItemBeanForm;/**
* @author iwtxokhtd
*
*/
public class CreateOrderItemAction extends Action{ //航班日程安排dao
private CreateOrderItemDao itemdao; @Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
//错误消息对象
ActionMessages errors=new ActionMessages();
//从模型中获取数据
String id=(String)((OrderItemBeanForm)form).getId();
String year=(String)((OrderItemBeanForm)form).getYear();
String month=(String)((OrderItemBeanForm)form).getMonth();
String day=(String)((OrderItemBeanForm)form).getDay();
//转换字符格式
id=new String(id.getBytes("ISO-8859-1"),"gb2312");
year=new String(year.getBytes("ISO-8859-1"),"gb2312");
month=new String(month.getBytes("ISO-8859-1"),"gb2312");
day=new String(day.getBytes("ISO-8859-1"),"gb2312");
Long lid=new Long(Long.parseLong(id));
Date date=new Date(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
//若id,year,month,day为空,则报错
if(id==null||year==null||month==null||day==null)
{
errors.add("fail_1",new ActionMessage("CreateOrderItemAction.c"));
saveErrors(request,errors);
return mapping.getInputForward();
}
//保存新的航班日程安排
if(!itemdao.CreateOrderItem(lid, date))
{
errors.add("fail_2", new ActionMessage("CreateOrderItemAction.a"));
saveErrors(request,errors);
}
else
{
errors.add("succeed_1",new ActionMessage("CreateOrderItemAction.b"));
saveErrors(request,errors);
}
return mapping.findForward("createok");
}
public CreateOrderItemDao getItemdao() {
return itemdao;
} public void setItemdao(CreateOrderItemDao itemdao) {
this.itemdao = itemdao;
}
}
String year=(String)((OrderItemBeanForm)form).getYear();
String month=(String)((OrderItemBeanForm)form).getMonth();
String day=(String)((OrderItemBeanForm)form).getDay();你的上面几相中有空值所有你在下面调用getBytes("ISO-8859-1")的时候空指针因为null.getBytes("ISO-8859-1")抛出异常.
String yearorg.apache.commons.lang.StringUtils.defaultString(oifrom.getYear();
String month=org.apache.commons.lang.StringUtils.defaultString(oifrom.getMonth());
String day=org.apache.commons.lang.StringUtils.defaultString(oifrom.getDay());
在这两行 --Long lid=new Long(Long.parseLong(id));
Date date=new Date(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day)); 出现如下异常:
java.lang.NumberFormatException: For input string: ""
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Long.parseLong(Long.java:424)
java.lang.Long.parseLong(Long.java:461)
com.iwtxokhtd.action.CreateOrderItemAction.execute(CreateOrderItemAction.java:53)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
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)
你先判断一下然后再用
Date date=new Date(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
例如:
Date date= new Date();
if(!"".equals(year)&&!"".equals(month)&&!"".equals(day)){
date=new Date(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
}就好啦o(∩_∩)o...