最近一直在忙着做项目,对于javaweb的学习总结放慢了,但是还是会利用空闲时间补上的,下面总结一下
项目开发过程中遇到的问题:
开发环境:eclipse+weblogic服务器+oracle数据库
框架:前台angularjs+bootstrap 后台spring+ibatis
一:从数据库读取的date类型数据到前台显示时,显示为long类型值(即1970年1月1日至今的毫秒数)
解决思路:
1:本来想着数据库封装数据时做过转换,直接到date类型转换为String类型返回。
2:在业务层对数据进行转换
3:在前台进行日期格式化
通过百度找到了angualarjs的过滤器filter,成功解决问题。
{{data.visitDate | date : 'yyyy-MM-dd'}}
二:在配置sql语句的xml中参数类型以及返回值类型的问题
parameterClass=java.util.Map 可以
resultClass =java.util.Map 报错
解决思路:
1:仔细想一下,这是很基础的知识,第一个是多态,参数类型时map接口,但是实际传进来的值时它的子类对象。
而返回值类型如果写成map接口就有问题了,我们是要把hashmap映射对象放到List集合中,如果使用java.util.Map
接口,它是不能实例化对象的。
三:从oracle数据库中查询到数据,但是前台显示不了
解决思路:
1:oracle字段名称是大写,所以在前台写字段名称时也必须是大写,小写的字段无法和json中的key进行匹配,这个
还是要注意一下的。
四:配置sql的xml中< 或者 >的问题
解决思路:
1:在sql配置xml中涉及到小于或者小于都要使用CDATA解释,使用能够完全按照xml写的显示。
五:表头固定问题
采用clone表头、表字段、表数据的方式固定表头,可以参考如下博客:
http://www.cnblogs.com/midcn/p/5556564.html
六:性别转换
数据库sex字段存储:M代表男 ,F代表女,可以通过在select查询时进行转换:
decode(SEX,'M','男','女')
七:日期问题
使用html标签type=date,提交数据到后台时,时间少了8个小时,在前台是GMT +8(中国标准时间),
但是到了后台,request里面封装的是yyyy-MM-dd Z HH:mm:ss 格式的数据,可以采用在前台将
时间转换为String的方式解决。
var visitDate = $scope.form.visitDate.format('yyyy-MM-dd HH:mm:ss');
其中yyyy-MM-dd HH:mm:ss HH为大写时时24小时制,为小写时为12小时制。
八:jqueryAPI获取元素对象
1:var obj = $(#id).children().children('tr').eq(index);
$(#id):根据id获取元素
children():获取某个元素的所有子元素
children('tr'):获取某个元素下特定的子元素
eq(index):获取第index个子元素
2:obj.removeAttr('readonly','readonly');
去掉元素的某个属性
3:obj.attr('style','30px');
给元素添加某个属性
4:obj.css('border','1px red solid');
给元素动态添加样式