Intellij Idea下打包JavaWeb项目忽略外部依赖包(Tomcat为例)
使用Intellij Idea有一段时间了(将近一年),从一开始的不习惯,到现在的高效开发,一切都显得是那么的自然而然。
由于前段时间一直做的项目并非传统Web项目,而是纯Restful风格的WebService,故而没有使用到基本的Servlet Api(Restful采用封装好的框架——Jersey,开发时不涉及Servlet Api的调用),也没有直接引入诸如Tomcat之类中间件自带的Jar包,所以一直没有发现问题。
直到最近,一个小项目的兄弟神奇的采用了Tomcat6的工具类实现文件上传,他开发使用的是eclipse,切换到我的Intellij Idea上面,发现编译不通过,就顺手在Libraries里面添加了Tomcat的Lib目录,自以为完美解决了,不料Tomcat6、Tomcat7启动时均会报错,有一段时间甚至引入Tomcat6的Lib,运行在Tomcat7下,由于关键API改动不大,而用到的Tomcat6文件上传工具类在Tomcat7更名或移除了,所以这样奇葩的开发了近一周时间,通过查看编译后的输出文件,了解到,Intellij Idea是吧Tomcat的Jar包也同时输出了,当然,打包的时候也会包含在War包内,不过由于项目紧张,一时没来得及找方法,后面实在不爽,就留意了一下网友们的说法: 查看更多...
IE8及以下浏览器js中日期字符串格式化问题解决
最近一个小项目上涉及日期字符串格式化的问题,由于之前大部分工作中使用现有js框架自带的组件库,并没有注意此类兼容性问题,直到最近才发现,原来在IE8及以下IE版本中,JavaScript的Date函数是不支持new Date("2013-12-31")、new Date("2013-12-31 00:00:00")或者new Date("2013-12-31T00:00:00Z")这样的构造方式的。
网上关于字符串格式化的函数一般都雷同,如下
function dateFormat(dateString,format) { if(!dateString)return ""; var time = new Date(dateString); var o = { "M+": time.getMonth() + 1, //月份 "d+": time.getDate(), //日 "h+": time.getHours(), //小时 "m+": time.getMinutes(), //分 "s+": time.getSeconds(), //秒 "q+": Math.floor((time.getMonth() + 3) / 3), //季度 "S": time.getMilliseconds() //毫秒 }; if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (time.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return format; }