这断时间一直在用struts做开发,还规定尽量用struts的标记库,所以最进对struts的标记库研究得比较多。直到今天才发现,前面研究的东西都是白费了,最终都是用不上了。
前面写过用struts tag对formbean 属性的显示,花了不少时间研究出了对Integer ,BigDecimal类型属性的显示问题,struts formbean是不支持Date类型的属性的。也看到了”struts formbean的最佳实践是String“这句话,也看到过formbean获取这些数据,首先都是以string类型获取到,然后再转成自己所需类型这样的文章。但是一直抱着偷懒的心态,一直想尽量用BeanUtils.copyProperties(object,formbean)这样的方法来获取formbean的内容,懒得自己一个一个属性的获取和赋值。
但是今天出现的一个问题,使我幡然醒悟。
问题描述如下:
1,我定义了一个formbean,里面有两个BigDecimal属性。
2,然后我在jsp页面上要新增一个对象,提交时报一个javax.servlet.ServletException: BeanUtils.populate异常。
我发现是因为没有给那2个BigDecimal属性附初值的原因。
想想以前看过的内容,我想formbean获取属性值时,也许也是会这么获取内容
new BigDecimal(request.getParameter("xxxx"));由于xxx是null,所以就报错误了。
我没有看过struts的源代码,这只是我自己想当然的想法,不知道对不对,哪位高人看后,不吝赐教,非常感谢。