这两天,蒸腾了两个例子,听说一个叫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
[org.apache.struts.action.RequestProcessor] - <Unhandled Exception thrown: class java.lang.NullPointerException>