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