這兩天,蒸騰了兩個(gè)例子,聽說一個(gè)叫struts-menu的框架可以實(shí)現(xiàn)基于struts的菜單,照著網(wǎng)上的例子,自己擺弄了一個(gè),哈哈,這東西好,可以做出不同樣式的菜單,然后又用struts\struts-menu\spring\hibernate\sqlserver2000實(shí)現(xiàn)一個(gè)從數(shù)據(jù)庫讀取的動(dòng)態(tài)樹形菜單,好家伙這可折騰死我了,代碼早早的一口氣寫完了,剩下一堆錯(cuò)誤,有些甚至莫名其妙的,大部分時(shí)間都在這上面了,這周在學(xué)junit,看來很重要,要養(yǎng)成測試的好習(xí)慣,按照模塊來測試,不能一個(gè)程序?qū)懞昧耍龠@找那找錯(cuò),太浪費(fèi)時(shí)間了,這次就是,上來就給我一個(gè)下馬威,505錯(cuò)誤(網(wǎng)絡(luò)服務(wù)器錯(cuò)誤)actionServlet不可用,檢查struts-config.xml和applicationContext.xml的配置沒有見檢查出來不對,想必是spring或者h(yuǎn)ibernate的錯(cuò)誤了,在struts-config.xml解除跟spring的關(guān)聯(lián),直接在action中調(diào)用,spring的dao方法,這下可好,哈哈,出來一堆錯(cuò)誤,都是不小心的這錯(cuò)那錯(cuò),一通改之后,最后卡在
hibernate java.lang.ClassCastException: [Ljava.lang.Object
上,是hibernate報(bào)的錯(cuò)誤,發(fā)現(xiàn)在查詢后得到的List不知道里面是什么類型,不能強(qiáng)制轉(zhuǎn)換成我的持久類,不能轉(zhuǎn)換成map,那是什么呢,因?yàn)槲业牟樵冋Z句是復(fù)合查詢,最后發(fā)現(xiàn)List是Object[],是個(gè)Object類型的數(shù)組,我見過List里面是Map,持久類,Object[]了,Map是在spring里面通過spring的jdbcTemplete返回的List,里面是Map集合,Map的鍵是數(shù)據(jù)庫表的字段名,后兩個(gè)是在hibernate里,一個(gè)表查詢可能就是返回持久類類型,多個(gè)表查詢就是Object[]類型了?但Object[]里面是什么,我這里發(fā)現(xiàn)里面是每條記錄的值,在網(wǎng)上查到,還有可能是多個(gè)持久類(多表查詢,這個(gè)說法我沒試過呢),這樣把List里取出的轉(zhuǎn)換成Object[],這個(gè)錯(cuò)誤算是通過了,還有個(gè)hibernate java.lang.ClassCastException: java.lang.Integer
[org.apache.struts.action.RequestProcessor] - <Unhandled Exception thrown: class java.lang.NullPointerException>