http://www.cnblogs.com/lotusve/archive/2012/03/02/2377522.html http://www.oschina.net/question/163910_27024