这断时间一直在用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的源代码,这只是我自己想当然的想法,不知道对不对,哪位高人看后,不吝赐教,非常感谢。
本文探讨了使用Struts框架进行开发时遇到的问题,特别是关于表单Bean中BigDecimal类型属性的处理方式。作者分享了如何正确初始化这些类型的数据以避免运行时异常,并反思了Struts推荐的最佳实践。
1万+

被折叠的 条评论
为什么被折叠?



