這斷時間一直在用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的源代碼,這只是我自己想當然的想法,不知道對不對,哪位高人看後,不吝賜教,非常感謝。