欢迎来到天天文库
浏览记录
ID:48262270
大小:41.50 KB
页数:6页
时间:2020-01-20
《javaweb编程中常见的异常及处理方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1.严重:Servlet.service()forservletactionthrewexceptionjava.lang.IllegalArgumentException:argumenttypemismatch异常说明:参数类型不匹配原因:Struts框架中的ActionForm,主要有三大作用:给属性赋值,自动转型和数据的验证。其中,在数据类型的自动转换中,简化了程序员的代码量,但是,以Struts1.2为例:ActionForm对java.util.Date类型的数据(但是默认有java.sql.Date)没提供转型。解决办法:1.Form中的日期类型使用String类型,在Act
2、ion中自己处理类型转换(即在Action中对Form->POJO转换时手工处理)。2.Form中使用java.util.Date类型,自定义一个日期转换类DateConverter(需要实现Converter接口),然后在自定义的ActionServlet或者Action基类中注册DateConverter:ConvertUtils.register(newDateConverter(),Date.class)。方法二具体处理办法:1.先申明一个转换类packageyg.util;importjava.text.ParseException;importjava.text.SimpleD
3、ateFormat;importjava.util.Date;importorg.apache.commons.beanutils.ConversionException;importorg.apache.commons.beanutils.Converter;publicclassUtilDateConverterimplementsConverter{@OverridepublicObjectconvert(Classtype,Objectvalue){ //TODOAuto-generatedmethodstub System.out.println("UtilDateConve
4、rter.value="+value); if(value==null){ returnvalue; } if(valueinstanceofDate){ returnvalue; } Dated=null; if(valueinstanceofString){ SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); try{ d=sdf.parse((String)value); }catch(ParseExceptione){ //TODOAuto-generatedcatchblock
5、 e.printStackTrace(); } } returnd;}}2.再使服务器启动设使给类注册进去方法1.使用servlet注册packageyg.util;importjava.util.Date;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importorg.apache.commons.beanutils.ConvertUtils;/***注册java.util.date转换器*@authorAdministrator**/publicclassUtilDate
6、ConverterInitWithServletextendsHttpServlet{@Overridepublicvoidinit()throwsServletException{ System.out.println("UtilDateConverterInitWithServlet.init()"); ConvertUtils.register(newUtilDateConverter(),Date.class);}}其中web.xml文件加上UtilDateConverterInitWithServlet7、>com.bjsxt.struts.UtilDateConverterInitWithServlet3方法2.使用struts中的plug-in进行注册packageyg.util;importjava.util.Date;importjavax.servlet.Serv
7、>com.bjsxt.struts.UtilDateConverterInitWithServlet3
此文档下载收益归作者所有