常见的BeanUtils.populate异常 解决方案

本文介绍了解决Struts框架中遇到的javax.servlet.ServletException异常的具体方法,该异常通常由于String到Date类型的转换失败引起。文章提供了两种解决方案:一是直接修改Date类型为String类型;二是通过自定义ActionForm或重载set方法来实现类型转换。
部署运行你感兴趣的模型镜像
今天做文件的导出遇到了
javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
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)


异常,解决10几分钟得到的结果 笼统的来说就是 类型转换失败 String无法转换成Date类型
解决方法有两种:
其一就是:
­老办法,就是将你的Date类型数据对象改成String类型就不会出现这个错误了,当然这是没办法的办法。
本来今天我也想这么做了,(因为之前都是这么做的),但是想了想,在加上找资料,觉得应该还有比修改类型的方法更好的办法吧,所以就琢磨了琢磨,想出了第二个办法,闲话不多说,来看看第二个方法吧。

其二:
在你的ActionForm 或者重载set()方法, 及:
set****(String dateStr){
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); ----日期格式化样式
Date date=sdf.parse(str,new ParsePosition(0)); ---将传进来的dateStr转换成 Date类型
this.**** = date; -----你声明的 Date类型属性 就可以了
}



如果没有 ActionForm 就修改JavaBean的同一方法 ,做法一样

这样 传入Date类型和 String类型都不会报错了。。。。




当上传文件有<html:file> 时如果不定义表单为 enctype="multipart/form-data" 可能也会产生这个错误

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值