论坛首页 入门技术论坛

终于体验到"struts formbean的最佳实践是String"这句话的强大意义了

浏览 3436 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-10  

这断时间一直在用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的源代码,这只是我自己想当然的想法,不知道对不对,哪位高人看后,不吝赐教,非常感谢。

   发表时间:2007-04-10  
你这个问题我遇到过,并不是像你说的那样处理成String,当然使用String确实是个好办法,但是这样一来在Action处就要做一些功夫了。
我觉得最好的办法是在Struts Formbean里面的Setter和Getter里进行处理, 不要麻烦做Action的人去处理这些你分内的事。the bucket stops here
0 请登录后投票
   发表时间:2007-04-11  
lintomny     12 小时前
你这个问题我遇到过,并不是像你说的那样处理成String,当然使用String确实是个好办法,但是这样一来在Action处就要做一些功夫了。
我觉得最好的办法是在Struts Formbean里面的Setter和Getter里进行处理, 不要麻烦做Action的人去处理这些你分内的事。the bucket stops here

这个想法是很好,但是我怎么在“Formbean里面的Setter和Getter里进行处理”进行处理呢?我做调式时,当一个BigDecimal 属性值为空时,尚未进入Setter和Getter方法就已经报javax.servlet.ServletException: BeanUtils.populate 错误,又如何能进行处理呢????能否给个详细点的说明或者是一两行关键的代码,谢谢
0 请登录后投票
   发表时间:2007-04-16  
不知道哪位大侠指点一下啊,小弟跪谢了。
0 请登录后投票
   发表时间:2007-04-16  
我还以为你是给别人讲你的经历。。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics