在Struts开发中遇到了这个问题:javax.servlet.ServletException: BeanUtils.populate
可能原因如下:
1.JSP页面是Sing 类型的,如果actionForm里头的数据定义成别的类型,就会报这个错
2.JSP页面的字段什么写错了。
3.当上传文件有<html:file> 时如果不定仪表单为 enctype=”multipart/form-data”
4.页面中有<html:hidden property=”bid.goods.goodsId” value=”${good.goodsId}” />
<%–bid是formBean中的一个属性(也是一个实体类对象),goods是bid中的一个属性(也是一个实体类对象)–%>
异常信息:
注意:通过页面向action提交数据时,如果使用formBean进行封装数据,
并且formBean属性中的属性是实体Bean,封装数据会报异常。
其主要原因是在页面为formBean的属性赋值时,
×××××××××××××××××××××××××××××××××××××××××××××××××××
struts底层代码只能识别formBean的属性可以是实体Bean,
不能识别出属性的属性是实体Bean。
×××××××××××××××××××××××××××××××××××××××××××××××××××
所以我的解决方法是在Bid中自己添加一个字段goodsId
然后再对应的Action中使用findGoodsByGoodsId找到goods对象