2007-1-21 星期日
這兩天,蒸騰了兩個例子,聽說一個叫struts-menu的框架可以實現基于struts的菜單,照著網上的例子,自己擺弄了一個,哈哈,這東西好,可以做出不同樣式的菜單,然后又用struts\struts-menu\spring\hibernate\sqlserver2000實現一個從數據庫讀取的動態樹形菜單,好家伙這可折騰死我了,代碼早早的一口氣寫完了,剩下一堆錯誤,有些甚至莫名其妙的,大部分時間都在這上面了,這周在學junit,看來很重要,要養成測試的好習慣,按照模塊來測試,不能一個程序寫好了,再這找那找錯,太浪費時間了,這次就是,上來就給我一個下馬威,505錯誤(網絡服務器錯誤)actionServlet不可用,檢查struts-config.xml和applicationContext.xml的配置沒有見檢查出來不對,想必是spring或者hibernate的錯誤了,在struts-config.xml解除跟spring的關聯,直接在action中調用,spring的dao方法,這下可好,哈哈,出來一堆錯誤,都是不小心的這錯那錯,一通改之后,最后卡在
hibernate java.lang.ClassCastException: [Ljava.lang.Object
上,是hibernate報的錯誤,發現在查詢后得到的List不知道里面是什么類型,不能強制轉換成我的持久類,不能轉換成map,那是什么呢,因為我的查詢語句是復合查詢,最后發現List是Object[],是個Object類型的數組,我見過List里面是Map,持久類,Object[]了,Map是在spring里面通過spring的jdbcTemplete返回的List,里面是Map集合,Map的鍵是數據庫表的字段名,后兩個是在hibernate里,一個表查詢可能就是返回持久類類型,多個表查詢就是Object[]類型了?但Object[]里面是什么,我這里發現里面是每條記錄的值,在網上查到,還有可能是多個持久類(多表查詢,這個說法我沒試過呢),這樣把List里取出的轉換成Object[],這個錯誤算是通過了,還有個hibernate java.lang.ClassCastException: java.lang.Integer