http://blog.csdn.net/liuyimu/archive/2010/04/21/5510374.aspx http://blog.csdn.net/pizi0475/archive/2010/03/15/5380319.aspx