2015年03月 归档

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;
        }

查看更多...