Struts2.3+Spring+iBatis 初学之问题判断
小白接下来将会总结下我再学习Spring的学习过程中(ssi框架)中遇到的问题,以后会不断的进行更新。
最容易犯的问题,就是声明bean的时候,属性引用其他声明的bean的时候,name没有进行好对应(与其他地方声明的bean的id属性一致)
还有就是class没有对应好类。(可以通过ctrl+ 鼠标单击)去判断类是否存在已经正确的对应。
1.如果遇到某个对象无法创建的问题,可以考虑在调用类中是否对使用的属性进行了set get方法。
2.resultclass 跟resultmap 要区别好 resultmap是跟已经存在的实体类(大多数的时候都是本身类取别名,然后使用该别名进行映射) 而resultMap是可以跟java类进行映射 例如java.util.hasnMap这种用法
3.有的时候会报 no statement 的问题
首先 判断自己新建的ibatis配置文件是否包含在总配置文件中 其次 调用的方法是否在配置文件中存在。
4:WARN - Error setting expression 'tWaterTransportSurvey.id' with value '[Ljava.lang.String;@9c7307'
ognl.OgnlException: target is null for setProperty(null, "id", [Ljava.lang.String;@9c7307) (报错信息完全没有用处)
我在action中已经get set 了,页面中也跟action中的对象一一对应了,最后再项目组长的帮助下,才知道action中的属性的名称第二个字母不能大写(有关页面传值的对象),不然传过去的对象就是为空的。
5:java.sql.SQLException: ORA-00942: 表或视图不存在
数据库的表是对的,SQL语句也能查出来,可就是报这个错,求解!
解决方案:原来是自己的配置文件出错误了(没有包含对应的ibatis文件)。
6:ibatis xxxx.xxx found 查询了一下ibatis配置文件里面的sql语句 也没有错误,然而却报异常,
解决方案:这个时候要注意了,是否include了两个重复文件。
7:struts 改成开发者模式 constant name="struts.devMode" value="true"></constant> 加上这一句,没有效果
解决办法 <constant name="struts.configuration.xml.reload" value="true"/> 不知道为什么是这一句。
8. stucts2 下面的 iterator 标签 要实现将界面的循环获取的列表传入后台进行保存,在 iterator value 值为list<类>的情况下,不会产生问题,但是如果是list<hashMap<string,string>> 的情况下,就会立即报错,因为,可以采用在类中添加对应的属性,然后还是用实体类的方式来实现。
9: no writable property 'need_sum' __java.object 报错信息差不多这样 但是sqlmap 里面的sql执行起来没有任何问题,也就是问题出在了映射上面 但是我返回的类型用的是treemap类型,按理说是不会有映射不了的情况的,最终发现,原来是我再分组求和的时候 没有将求和的列重新命名,导致没有办法映射。
作者:wangqc
出处:http://www.cnblogs.com/wangqc/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-wangqc。