<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SongLai&#039;s Life</title>
	<atom:link href="http://songlai.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://songlai.com</link>
	<description>Make Life Better</description>
	<lastBuildDate>Tue, 21 Feb 2012 00:46:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>太尖锐了。</title>
		<link>http://songlai.com/2011/11/22/%e5%a4%aa%e5%b0%96%e9%94%90%e4%ba%86%e3%80%82/</link>
		<comments>http://songlai.com/2011/11/22/%e5%a4%aa%e5%b0%96%e9%94%90%e4%ba%86%e3%80%82/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 08:30:24 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[娱乐]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=160</guid>
		<description><![CDATA[赵本山：请听题，世界上最不痛苦的死法是什么？ 范伟：安乐死。 高秀敏：错！是躲猫猫。 　 赵本山：请听题，中国当官要精通哪四种语言？ 范伟：英语、法语、俄语和日语。 高秀敏：错！假话、空话、大话和套话。 　 赵本山：请听题，什么东西要藏起来暗地里用，用完之后再暗地里交给别人？ 范伟：照相底片。 高秀敏：错，是潜规则。 　 赵本山：请听题，边做假药广告、边说假药效果、边痛斥假药危害的是什么？ 范伟：江湖骗子。 高秀敏：错，是CCTV。 　 赵本山：请听题，你只有10平米的房屋，邻居从0平米换到100平米，你的居住面积有没有增加？ 范伟：没有。 高秀敏：错，你在平均住房面积里被增加了45平米。 　 赵本山：请听题，一个永远要你对她负责而她却不对你负责的是谁？ 范伟：二奶。 高秀敏：错！是银行。 　 赵本山：请听题，从小就听说有，但你现在一直没有见过的是什么？ 范伟：鬼。 高秀敏：错！是共产主义社会。 　 赵本山：请听题，外面看着豪华、干净，实则是宽衣解带、藏污纳垢的地方，这是哪里？ 范伟：公厕。 高秀敏：错！是演艺圈。 　 赵本山：请听题，刚被人打了一棒，马上潜入水中，过一会在不远处穿着马甲又探出头来的是什么？ 范伟：乌龟。 高秀敏：错！是免职官员。 　 赵本山：请听题，“中国城市环境污染不是由汽车造成的，而是由自行车造成的。自行车的污染比汽车更大”。这句话谁说的？ 范伟：精神病人。 高秀敏：错！是中国专家。 　 &#8230; <a href="http://songlai.com/2011/11/22/%e5%a4%aa%e5%b0%96%e9%94%90%e4%ba%86%e3%80%82/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>赵本山：请听题，世界上最不痛苦的死法是什么？<br />
范伟：安乐死。<br />
高秀敏：错！是躲猫猫。 　</p>
<p>赵本山：请听题，中国当官要精通哪四种语言？<br />
范伟：英语、法语、俄语和日语。<br />
高秀敏：错！假话、空话、大话和套话。<br />
　<br />
赵本山：请听题，什么东西要藏起来暗地里用，用完之后再暗地里交给别人？<br />
范伟：照相底片。<br />
高秀敏：错，是潜规则。 　</p>
<p>赵本山：请听题，边做假药广告、边说假药效果、边痛斥假药危害的是什么？<br />
范伟：江湖骗子。<br />
高秀敏：错，是CCTV。 　</p>
<p>赵本山：请听题，你只有10平米的房屋，邻居从0平米换到100平米，你的居住面积有没有增加？<br />
范伟：没有。<br />
高秀敏：错，你在平均住房面积里被增加了45平米。<br />
　<br />
赵本山：请听题，一个永远要你对她负责而她却不对你负责的是谁？<br />
范伟：二奶。<br />
高秀敏：错！是银行。<br />
 　<br />
赵本山：请听题，从小就听说有，但你现在一直没有见过的是什么？<br />
范伟：鬼。<br />
高秀敏：错！是共产主义社会。<br />
 　<br />
赵本山：请听题，外面看着豪华、干净，实则是宽衣解带、藏污纳垢的地方，这是哪里？<br />
范伟：公厕。<br />
高秀敏：错！是演艺圈。 　</p>
<p>赵本山：请听题，刚被人打了一棒，马上潜入水中，过一会在不远处穿着马甲又探出头来的是什么？<br />
范伟：乌龟。<br />
高秀敏：错！是免职官员。<br />
　<br />
赵本山：请听题，“中国城市环境污染不是由汽车造成的，而是由自行车造成的。自行车的污染比汽车更大”。这句话谁说的？<br />
范伟：精神病人。<br />
高秀敏：错！是中国专家。<br />
　<br />
赵本山：请听题，有一个人经常要代表你说话，但你从来没有见过面，为什么？<br />
范伟：是私生子他亲爹。<br />
高秀敏：错！是人大代表，不认识你也要代表你。</p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/11/22/%e5%a4%aa%e5%b0%96%e9%94%90%e4%ba%86%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash 焦点图片（Image）轮换（幻灯片）</title>
		<link>http://songlai.com/2011/11/04/flash-%e7%84%a6%e7%82%b9%e5%9b%be%e7%89%87%ef%bc%88image%ef%bc%89%e8%bd%ae%e6%8d%a2%ef%bc%88%e5%b9%bb%e7%81%af%e7%89%87%ef%bc%89/</link>
		<comments>http://songlai.com/2011/11/04/flash-%e7%84%a6%e7%82%b9%e5%9b%be%e7%89%87%ef%bc%88image%ef%bc%89%e8%bd%ae%e6%8d%a2%ef%bc%88%e5%b9%bb%e7%81%af%e7%89%87%ef%bc%89/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 13:01:05 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=157</guid>
		<description><![CDATA[点击链接查看：可能会被墙，不知道为啥 PS.墙：动词！是动词！！！]]></description>
			<content:encoded><![CDATA[<p>点击链接查看：<a href="http://www.ruochigroup.com/main/bcastr-example/">可能会被墙，不知道为啥</a></p>
<p>PS.墙：动词！是动词！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/11/04/flash-%e7%84%a6%e7%82%b9%e5%9b%be%e7%89%87%ef%bc%88image%ef%bc%89%e8%bd%ae%e6%8d%a2%ef%bc%88%e5%b9%bb%e7%81%af%e7%89%87%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle 的服务项</title>
		<link>http://songlai.com/2011/10/31/oracle-%e7%9a%84%e6%9c%8d%e5%8a%a1%e9%a1%b9/</link>
		<comments>http://songlai.com/2011/10/31/oracle-%e7%9a%84%e6%9c%8d%e5%8a%a1%e9%a1%b9/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 03:14:34 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[DB]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=113</guid>
		<description><![CDATA[oracleDBConsole紧跟数据库名或服务名（EM的服务，http://localhost:5500/em） OracleService紧跟数据库名或服务名（利用PL/SQL对数据库进行连接操作） OracleOraHome92TNSListener（监听器）]]></description>
			<content:encoded><![CDATA[<p>oracleDBConsole紧跟数据库名或服务名（EM的服务，http://localhost:5500/em）</p>
<p>OracleService紧跟数据库名或服务名（利用PL/SQL对数据库进行连接操作）</p>
<p>OracleOraHome92TNSListener（监听器）</p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/10/31/oracle-%e7%9a%84%e6%9c%8d%e5%8a%a1%e9%a1%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edit Polygon for Google Map API V3</title>
		<link>http://songlai.com/2011/10/29/edit-polygon-for-google-map-api-v3/</link>
		<comments>http://songlai.com/2011/10/29/edit-polygon-for-google-map-api-v3/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 09:16:24 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[api3]]></category>
		<category><![CDATA[edit]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[polygon]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=146</guid>
		<description><![CDATA[API]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mistechko.sumy.ua/jscript/google/map/polygonEdit/src/index.html" target="_blank">API</a></p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/10/29/edit-polygon-for-google-map-api-v3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dojo1.6 + spring3 实现文件上传（uploader）</title>
		<link>http://songlai.com/2011/10/25/dojo1-6-spring3-%e5%ae%9e%e7%8e%b0%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%ef%bc%88upload%ef%bc%89/</link>
		<comments>http://songlai.com/2011/10/25/dojo1-6-spring3-%e5%ae%9e%e7%8e%b0%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%ef%bc%88upload%ef%bc%89/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 09:22:02 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=133</guid>
		<description><![CDATA[大体说一下思路吧，今天研究了一整天，到处找资料，重复了无数遍，出现了很多问题，最后在N个正确或不正确的例子中完成了这个功能，还很简陋，有待完善。 先从dojo说起， &#60;script type=&#34;text/javascript&#34;&#62; &#160;&#160;&#160;&#160;dojo.require(&#34;dojox.form.Uploader&#34;); &#160;&#160;&#160;&#160;dojo.require(&#34;dojox.form.uploader.FileList&#34;); &#160;&#160;&#160;&#160;dojo.require(&#34;dojox.form.uploader.plugins.IFrame&#34;); &#60;/script&#62; &#60;form method=&#34;post&#34; action=&#34;&#60;c:url value=&#34;saveUploadImg.json&#34;/&#62;&#34; id=&#34;myForm&#34; enctype=&#34;multipart/form-data&#34; &#62; &#160;&#160;&#160;&#160;&#60;input name=&#34;uploadedfile&#34; multiple=&#34;true&#34; type=&#34;file&#34; id=&#34;uploader&#34; dojoType=&#34;dojox.form.Uploader&#34; label=&#34;上传图片&#34; &#62; &#160;&#160;&#160;&#160;&#60;input type=&#34;submit&#34; label=&#34;Submit&#34; dojoType=&#34;dijit.form.Button&#34; /&#62; &#160;&#160;&#160;&#160;&#60;div id=&#34;files&#34; dojoType=&#34;dojox.form.uploader.FileList&#34; uploaderId=&#34;uploader&#34;&#62;&#60;/div&#62; &#60;/form&#62; dojox.form.Uploader：dojo1.6的最新上传组件，以前的FileUploader在2.0之前会保留，之后会删除 dojox.form.uploader.FileList：上传文件可以实现多文件上传，不过目前只是在IE中好用，chrom、firefox下只能选择一个文件，但是不能提交原因不知道，TODO。而且当前只是用html的实现，貌似还有一种flash的，一直没试成功，TODO。这个组件就是和upload绑定显示已选文件，可以列出所有，怎么修改样式还不知道，默认是鸟文。 dojox.form.uploader.plugins.IFrame：引入此组件可以实现ajax方式上传 enctype=”multipart/form-data”：只有加它才是上传文件的形式 label=”上传图片”：这个本来是设置组件中选择文件的按钮文字，可是在IE9里面显示的完全不是这个，兼容模式下可以。 uploaderId=”uploader”：设定FileList和Uploader关联 好吧，页面就说完了，但是实际上还有好几个工作没有做，比如上传成功后返回的json要接收并且把上传的文件在页面中弄个列表显示出来，特别是图片文件，后面解决（如果我不懒还发出来的话） &#8230; <a href="http://songlai.com/2011/10/25/dojo1-6-spring3-%e5%ae%9e%e7%8e%b0%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%ef%bc%88upload%ef%bc%89/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>大体说一下思路吧，今天研究了一整天，到处找资料，重复了无数遍，出现了很多问题，最后在N个正确或不正确的例子中完成了这个功能，还很简陋，有待完善。<br />
先从dojo说起，<br />
<pre><code>
&lt;script type=&quot;text/javascript&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;dojo.require(&quot;dojox.form.Uploader&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;dojo.require(&quot;dojox.form.uploader.FileList&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;dojo.require(&quot;dojox.form.uploader.plugins.IFrame&quot;);
&lt;/script&gt;
&lt;form method=&quot;post&quot; action=&quot;&lt;c:url value=&quot;saveUploadImg.json&quot;/&gt;&quot; id=&quot;myForm&quot; enctype=&quot;multipart/form-data&quot; &gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;input name=&quot;uploadedfile&quot; multiple=&quot;true&quot; type=&quot;file&quot; id=&quot;uploader&quot; dojoType=&quot;dojox.form.Uploader&quot; label=&quot;上传图片&quot; &gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;submit&quot; label=&quot;Submit&quot; dojoType=&quot;dijit.form.Button&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id=&quot;files&quot; dojoType=&quot;dojox.form.uploader.FileList&quot; uploaderId=&quot;uploader&quot;&gt;&lt;/div&gt;
&lt;/form&gt;

</code></pre><br />
<span id="more-133"></span><br />
dojox.form.Uploader：dojo1.6的最新上传组件，以前的FileUploader在2.0之前会保留，之后会删除<br />
dojox.form.uploader.FileList：上传文件可以实现多文件上传，不过目前只是在IE中好用，chrom、firefox下只能选择一个文件，但是不能提交原因不知道，TODO。而且当前只是用html的实现，貌似还有一种flash的，一直没试成功，TODO。这个组件就是和upload绑定显示已选文件，可以列出所有，怎么修改样式还不知道，默认是鸟文。<br />
dojox.form.uploader.plugins.IFrame：引入此组件可以实现ajax方式上传<br />
enctype=”multipart/form-data”：只有加它才是上传文件的形式<br />
label=”上传图片”：这个本来是设置组件中选择文件的按钮文字，可是在IE9里面显示的完全不是这个，兼容模式下可以。<br />
uploaderId=”uploader”：设定FileList和Uploader关联<br />
好吧，页面就说完了，但是实际上还有好几个工作没有做，比如上传成功后返回的json要接收并且把上传的文件在页面中弄个列表显示出来，特别是图片文件，后面解决（如果我不懒还发出来的话）<br />
下面就是spring3的解决部分了。<br />
第一步，在上下文中启动multipart解析器，来处理多重的请求。<br />
<pre><code>
&lt;bean id=&quot;multipartResolver&quot;
&nbsp;&nbsp;&nbsp;&nbsp;class=&quot;org.springframework.web.multipart.commons.CommonsMultipartResolver&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- one of the properties available; the maximum file size in bytes --&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;property name=&quot;maxUploadSize&quot; value=&quot;100000&quot;/&gt;
&lt;/bean&gt;
</code></pre><br />
这样的话，你需要两个jar包，commons-fileupload.jar和commons-io.jar<br />
<pre><code>
@Entity
public class UploadItem implements Serializable {
&nbsp;&nbsp;&nbsp;&nbsp;private String id;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile0;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile1;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile2;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile3;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile4;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile5;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile6;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile7;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile8;
&nbsp;&nbsp;&nbsp;&nbsp;private MultipartFile uploadedfile9;
&nbsp;&nbsp;&nbsp;&nbsp;/*get set 方法太长，就不贴出来了*/
}
</code></pre><br />
接收方法：<br />
<pre><code>
&nbsp;&nbsp;&nbsp;&nbsp;@RequestMapping(value = &quot;saveUploadImg.json&quot;, method = RequestMethod.POST)
&nbsp;&nbsp;&nbsp;&nbsp;@ResponseBody
&nbsp;&nbsp;&nbsp;&nbsp;public Map&lt;String, Object&gt; saveUploadImg_json(UploadItem ui, HttpSession session) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Map&lt;String, String&gt;&gt; list = new ArrayList&lt;Map&lt;String, String&gt;&gt;();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String path = session.getServletContext().getRealPath(&quot;/images/upload/&quot;); // 获取本地存储路径
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream fileOutputStream = null;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;MultipartFile&gt; file = new ArrayList&lt;MultipartFile&gt;();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile0() != null &amp;&amp; !ui.getUploadedfile0().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile0());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile1() != null &amp;&amp; !ui.getUploadedfile1().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile1());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile2() != null &amp;&amp; !ui.getUploadedfile2().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile2());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile3() != null &amp;&amp; !ui.getUploadedfile3().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile3());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile4() != null &amp;&amp; !ui.getUploadedfile4().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile4());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile5() != null &amp;&amp; !ui.getUploadedfile5().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile5());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile6() != null &amp;&amp; !ui.getUploadedfile6().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile6());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile7() != null &amp;&amp; !ui.getUploadedfile7().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile7());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile8() != null &amp;&amp; !ui.getUploadedfile8().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile8());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ui.getUploadedfile9() != null &amp;&amp; !ui.getUploadedfile9().getName().equals(&quot;&quot;)) file.add(ui.getUploadedfile9());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; file.size(); i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!file.get(i).isEmpty()) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&lt;String, String&gt; m = new HashMap&lt;String, String&gt;();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String fileName =&nbsp;&nbsp;file.get(i).getOriginalFilename();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String a = fileName.split(&quot;\\.&quot;)[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String newName = &quot;yt_&quot; + new Date().getTime() + i + &quot;.&quot; + a.toLowerCase();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File files = new File(path + &quot;/&quot; + newName); // 新建一个文件
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileOutputStream = new FileOutputStream(files);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileOutputStream.write(file.get(i).getBytes());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileOutputStream.flush();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (Exception e) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fileOutputStream != null) { // 关闭流
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileOutputStream.close();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException ie) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ie.printStackTrace();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.put(&quot;path&quot;, path+&quot;/&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.put(&quot;name&quot;, newName);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.put(&quot;size&quot;, String.valueOf(file.get(i).getSize()));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(m);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map.put(&quot;list&quot;, list);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return map;
&nbsp;&nbsp;&nbsp;&nbsp;}
</code></pre><br />
解释一下，我们家的uploader名字叫做uploadedfile，但是组件式可以多文件形式的，所以IE下的命名方式为uploadedfile0-n，其他浏览器还各不相同，所以以上做法只针对IE浏览器。<br />
似乎没遗漏什么，以上是对一天的辛勤翻阅做个总结，希望对找到这篇文章的人有所帮助。<br />
不懒就待续。</p>
<blockquote><p>
查阅资料：<a href="http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multipart-resolver" target="_blank">spring文档</a> | <a href="http://www.google.com.hk/search?sourceid=chrome&#038;ie=UTF-8&#038;q=dojox.form.Uploader" target="_blank">google “dojox.form.Uploader” 查询</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/10/25/dojo1-6-spring3-%e5%ae%9e%e7%8e%b0%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%ef%bc%88upload%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web开发教程14－Spring Security</title>
		<link>http://songlai.com/2011/10/24/jstl-%e5%85%a5%e9%97%a8-%e8%a1%a8%e8%be%be%e5%bc%8f%e8%af%ad%e8%a8%80/</link>
		<comments>http://songlai.com/2011/10/24/jstl-%e5%85%a5%e9%97%a8-%e8%a1%a8%e8%be%be%e5%bc%8f%e8%af%ad%e8%a8%80/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 12:51:20 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=131</guid>
		<description><![CDATA[点击查看]]></description>
			<content:encoded><![CDATA[<p><a href="http://bluedash.net/spaces/Web%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B14%EF%BC%8DSpring%20Security" target="_blank">点击查看</a></p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/10/24/jstl-%e5%85%a5%e9%97%a8-%e8%a1%a8%e8%be%be%e5%bc%8f%e8%af%ad%e8%a8%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jstl的c:forEach标签</title>
		<link>http://songlai.com/2011/10/22/jstl%e7%9a%84cforeach%e6%a0%87%e7%ad%be/</link>
		<comments>http://songlai.com/2011/10/22/jstl%e7%9a%84cforeach%e6%a0%87%e7%ad%be/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 14:41:02 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[JAVA]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=127</guid>
		<description><![CDATA[tld里面是这样定义的的： &#60;tag&#62; &#160;&#160;&#160;&#160;&#60;name&#62;forEach&#60;/name&#62; &#160;&#160;&#160;&#160;&#60;tag-class&#62;org.apache.taglibs.standard.tag.el.core.ForEachTag&#60;/tag-class&#62; &#160;&#160;&#160;&#160;&#60;tei-class&#62;org.apache.taglibs.standard.tei.ForEachTEI&#60;/tei-class&#62; &#160;&#160;&#160;&#160;&#60;body-content&#62;JSP&#60;/body-content&#62; &#160;&#160;&#160;&#160;&#60;description&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;The basic iteration tag, accepting many different &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;collection types and supporting subsetting and other &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;functionality &#160;&#160;&#160;&#160;&#60;/description&#62; &#160;&#160;&#160;&#160;&#60;attribute&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;name&#62;items&#60;/name&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;required&#62;false&#60;/required&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;rtexprvalue&#62;false&#60;/rtexprvalue&#62; &#160;&#160;&#160;&#160;&#60;/attribute&#62; &#160;&#160;&#160;&#160;&#60;attribute&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;name&#62;begin&#60;/name&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;required&#62;false&#60;/required&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;rtexprvalue&#62;false&#60;/rtexprvalue&#62; &#160;&#160;&#160;&#160;&#60;/attribute&#62; &#160;&#160;&#160;&#160;&#60;attribute&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;name&#62;end&#60;/name&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;required&#62;false&#60;/required&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;rtexprvalue&#62;false&#60;/rtexprvalue&#62; &#160;&#160;&#160;&#160;&#60;/attribute&#62; &#160;&#160;&#160;&#160;&#60;attribute&#62; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#60;name&#62;step&#60;/name&#62; &#8230; <a href="http://songlai.com/2011/10/22/jstl%e7%9a%84cforeach%e6%a0%87%e7%ad%be/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>tld里面是这样定义的<c:forEach>的：<br />
<span id="more-127"></span><br />
<pre><code>
&lt;tag&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;forEach&lt;/name&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tag-class&gt;org.apache.taglibs.standard.tag.el.core.ForEachTag&lt;/tag-class&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tei-class&gt;org.apache.taglibs.standard.tei.ForEachTEI&lt;/tei-class&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;body-content&gt;JSP&lt;/body-content&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The basic iteration tag, accepting many different
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;collection types and supporting subsetting and other
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;functionality
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/description&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;items&lt;/name&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;required&gt;false&lt;/required&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;begin&lt;/name&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;required&gt;false&lt;/required&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;end&lt;/name&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;required&gt;false&lt;/required&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;step&lt;/name&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;required&gt;false&lt;/required&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;var&lt;/name&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;required&gt;false&lt;/required&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;attribute&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;varStatus&lt;/name&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;required&gt;false&lt;/required&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;rtexprvalue&gt;false&lt;/rtexprvalue&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/attribute&gt;
&lt;/tag&gt;
</code></pre><br />
<c:forEach>标签具有以下一些属性： </p>
<p>var：迭代参数的名称。在迭代体中可以使用的变量的名称，用来表示每一个迭代变量。类型为String。<br />
items：要进行迭代的集合。对于它所支持的类型将在下面进行讲解。<br />
varStatus：迭代变量的名称，用来表示迭代的状态，可以访问到迭代自身的信息。<br />
begin：如果指定了items，那么迭代就从items[begin]开始进行迭代；如果没有指定items，那么就从begin开始迭代。它的类型为整数。<br />
end：如果指定了items，那么就在items[end]结束迭代；如果没有指定items，那么就在end结束迭代。它的类型也为整数。<br />
step：迭代的步长。 </p>
<p><c:forEach>标签的items属性支持Java平台所提供的所有标准集合类型。此外，您可以使用该操作来迭代数组（包括基本类型数组）中的元素。它所支持的集合类型以及迭代的元素如下所示： </p>
<p>java.util.Collection：调用iterator()来获得的元素。<br />
java.util.Map：通过java.util.Map.Entry所获得的实例。<br />
java.util.Iterator：迭代器元素。<br />
java.util.Enumeration：枚举元素。<br />
Object实例数组：数组元素。 </p>
<p>基本类型值数组：经过包装的数组元素。 </p>
<p>用逗号定界的String：分割后的子字符串。 </p>
<p>javax.servlet.jsp.jstl.sql.Result：SQL查询所获得的行。 </p>
<p>不论是对整数还是对集合进行迭代， <c:forEach>的varStatus属性所起的作用相同。和var属性一样，varStatus用于创建限定了作用域的变量（改变量只在当前标签体内起作用）。不过，由varStatus属性命名的变量并不存储当前索引值或当前元素，而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性，它们描述了迭代的当前状态，如下这些属性的含义如下所示： </p>
<p>current：当前这次迭代的（集合中的）项。<br />
index：当前这次迭代从0开始的迭代索引。<br />
count：当前这次迭代从1开始的迭代计数。<br />
first：用来表明当前这轮迭代是否为第一次迭代，该属性为boolean类型。<br />
last：用来表明当前这轮迭代是否为最后一次迭代，该属性为boolean类型。<br />
begin：begin属性的值。<br />
end：end属性的值<br />
step：step属性的值 </p>
<p>利用varStatus属性：<br />
checkboxLists是checkBoxTO的集合，含有的关键，价值，checke属性。<br />
<pre><code>
&lt;c:forEach items=&quot;${checkboxList}&quot; begin=&quot;0&quot; step=&quot;2&quot; varStatus=&quot;status&quot;&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;c:out value=&quot;${status.index}&quot;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;checkbox&quot; value=&#039;&lt;c:out value=&quot;${checkboxList[status.index].key}&quot;/&gt;&#039;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:if test=&quot;${checkboxList[status.index].checked eq true}&quot;&gt;checked=&quot;checked&quot;&lt;/c:if&gt;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;c:out value=&quot;${checkboxList[status.index].value}&quot;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;c:if test=&quot;${!empty checkboxList[status.index+1]}&quot;&gt;&lt;!--判断是否还有下一个纪录，for奇数--&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;c:out value=&quot;${status.index+1}&quot;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;checkbox&quot; value=&#039;&lt;c:out value=&quot;${checkboxList[status.index+1].key}&quot;/&gt;&#039;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;c:if test=&quot;${checkboxList[status.index+1].checked eq true}&quot;&gt;checked=&quot;checked&quot;&lt;/c:if&gt;/&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;c:out value=&quot;${checkboxList[status.index+1].value}&quot; /&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/c:if&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;
&lt;/c:forEach&gt;
</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/10/22/jstl%e7%9a%84cforeach%e6%a0%87%e7%ad%be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据库 小记录</title>
		<link>http://songlai.com/2011/10/21/%e6%95%b0%e6%8d%ae%e5%ba%93-%e5%b0%8f%e8%ae%b0%e5%bd%95/</link>
		<comments>http://songlai.com/2011/10/21/%e6%95%b0%e6%8d%ae%e5%ba%93-%e5%b0%8f%e8%ae%b0%e5%bd%95/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 01:48:07 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=122</guid>
		<description><![CDATA[好吧，DB2 的序列名称必须是大写的，否则，创建的时候没问题，使用的时候会报错。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; oracle 当 mysql 用的简单步骤，嘿嘿 1、安装oracle 2、用oracle的“配置和移植工具->Database Configuration Assistant”创建数据库 3、创建表空间和用户，并把表空间指定给这个用户，然后使用用户登录创建表就可以了 --创建表空间脚本 GSGL（名称）【记得要Commit】 CREATE TABLESPACE GSGL DATAFILE&#160;&#160;&#039;D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\GSGL&#039; SIZE 3800M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING ONLINE PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT MANUAL FLASHBACK &#8230; <a href="http://songlai.com/2011/10/21/%e6%95%b0%e6%8d%ae%e5%ba%93-%e5%b0%8f%e8%ae%b0%e5%bd%95/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>好吧，DB2 的序列名称必须是大写的，否则，创建的时候没问题，使用的时候会报错。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
oracle 当 mysql 用的简单步骤，嘿嘿<br />
1、安装oracle<br />
2、用oracle的“配置和移植工具->Database Configuration Assistant”创建数据库<br />
3、创建表空间和用户，并把表空间指定给这个用户，然后使用用户登录创建表就可以了<br />
<span id="more-122"></span><br />
<pre><code>
--创建表空间脚本 GSGL（名称）【记得要Commit】
CREATE TABLESPACE GSGL DATAFILE&nbsp;&nbsp;&#039;D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\GSGL&#039; SIZE 3800M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT MANUAL
FLASHBACK ON;
</code></pre><br />
<pre><code>
--创建用户脚本 DEVELOPER（名称）【记得要Commit】
CREATE USER DEVELOPER
&nbsp;&nbsp;IDENTIFIED BY VALUES &#039;A24873E33FD41CE3&#039;
&nbsp;&nbsp;DEFAULT TABLESPACE GSGL
&nbsp;&nbsp;TEMPORARY TABLESPACE TEMP
&nbsp;&nbsp;PROFILE DEFAULT
&nbsp;&nbsp;ACCOUNT UNLOCK;
</code></pre><br />
<pre><code>
-- 1 Role for DEVELOPER 
GRANT DBA TO DEVELOPER;
ALTER USER DEVELOPER DEFAULT ROLE ALL;
-- 19 System Privileges for DEVELOPER 
GRANT LOCK ANY TABLE TO DEVELOPER;
GRANT DROP ANY TABLE TO DEVELOPER;
GRANT EXECUTE ANY PROCEDURE TO DEVELOPER;
GRANT UPDATE ANY TABLE TO DEVELOPER;
GRANT ANALYZE ANY TO DEVELOPER;
GRANT DROP ANY INDEX TO DEVELOPER;
GRANT DROP ANY TRIGGER TO DEVELOPER;
GRANT ALTER ANY PROCEDURE TO DEVELOPER;
GRANT ALTER ANY TRIGGER TO DEVELOPER;
GRANT CREATE ANY PROCEDURE TO DEVELOPER;
GRANT DELETE ANY TABLE TO DEVELOPER;
GRANT CREATE ANY TABLE TO DEVELOPER;
GRANT UNLIMITED TABLESPACE TO DEVELOPER;
GRANT SELECT ANY DICTIONARY TO DEVELOPER;
GRANT SELECT ANY TABLE TO DEVELOPER;
GRANT CREATE ANY TRIGGER TO DEVELOPER;
GRANT INSERT ANY TABLE TO DEVELOPER;
GRANT ALTER ANY TABLE TO DEVELOPER;
GRANT ALTER TABLESPACE TO DEVELOPER;
-- 1 Tablespace Quota for DEVELOPER 
ALTER USER DEVELOPER QUOTA UNLIMITED ON GSGL;
</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/10/21/%e6%95%b0%e6%8d%ae%e5%ba%93-%e5%b0%8f%e8%ae%b0%e5%bd%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>spring 标注 小记录</title>
		<link>http://songlai.com/2011/10/21/spring-%e6%a0%87%e6%b3%a8-%e5%b0%8f%e8%ae%b0%e5%bd%95/</link>
		<comments>http://songlai.com/2011/10/21/spring-%e6%a0%87%e6%b3%a8-%e5%b0%8f%e8%ae%b0%e5%bd%95/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 01:24:32 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[工作]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=117</guid>
		<description><![CDATA[@SuppressWarnings 标注关闭了类或方法级别的编译器警告 为了去掉由于泛型的Warning,我们用了@SuppressWarnings(“unchecked”), 为了去掉那些由于deprecation而引起的Warning,用了@SuppressWarnings(“deprecation”). 但一个类中既有unchecked又有deprecation时,怎么办? @SuppressWarnings(value={“deprecation”,”unchecked”}) 还可以使用 @SuppressWarnings(“all”) 来去掉所有的警告。 关键字　　　　　　用途 deprecation　　使用了不赞成使用的类或方法时的警告 unchecked　　　执行了未检查的转换时的警告，例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。 fallthrough　　当 Switch 程序块直接通往下一种情况而没有 Break 时的警告。 path　　　　　 在类路径、源文件路径等中有不存在的路径时的警告。 serial　　　　 当在可序列化的类上缺少 serialVersionUID 定义时的警告。 finally　　　　任何 finally 子句不能正常完成时的警告。 all　　　　　　关于以上所有情况的警告。]]></description>
			<content:encoded><![CDATA[<p>@SuppressWarnings 标注关闭了类或方法级别的编译器警告<br />
为了去掉由于泛型的Warning,我们用了@SuppressWarnings(“unchecked”),<br />
为了去掉那些由于deprecation而引起的Warning,用了@SuppressWarnings(“deprecation”).<br />
但一个类中既有unchecked又有deprecation时,怎么办?<br />
@SuppressWarnings(value={“deprecation”,”unchecked”})<br />
还可以使用 @SuppressWarnings(“all”) 来去掉所有的警告。<br />
<span id="more-117"></span><br />
关键字　　　　　　用途<br />
deprecation　　使用了不赞成使用的类或方法时的警告<br />
unchecked　　　执行了未检查的转换时的警告，例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。<br />
fallthrough　　当 Switch 程序块直接通往下一种情况而没有 Break 时的警告。<br />
path　　　　　 在类路径、源文件路径等中有不存在的路径时的警告。<br />
serial　　　　 当在可序列化的类上缺少 serialVersionUID 定义时的警告。<br />
finally　　　　任何 finally 子句不能正常完成时的警告。<br />
all　　　　　　关于以上所有情况的警告。 </p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/10/21/spring-%e6%a0%87%e6%b3%a8-%e5%b0%8f%e8%ae%b0%e5%bd%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>二愣的聪明劲</title>
		<link>http://songlai.com/2011/08/25/%e4%ba%8c%e6%84%a3%e7%9a%84%e8%81%aa%e6%98%8e%e5%8a%b2/</link>
		<comments>http://songlai.com/2011/08/25/%e4%ba%8c%e6%84%a3%e7%9a%84%e8%81%aa%e6%98%8e%e5%8a%b2/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 15:30:05 +0000</pubDate>
		<dc:creator>宋来</dc:creator>
				<category><![CDATA[娱乐]]></category>

		<guid isPermaLink="false">http://songlai.com/?p=114</guid>
		<description><![CDATA[城里打工的二愣一个电话打给媳妇水月“水月，我被砸了头，医生说要不少医药费呢！”水月急了，大哭：“那可怎么办啊？” 二愣粗着嗓子吼了一声：“哭有啥用？还不赶紧借钱去！”说完，二愣把手机挂了。 水月开始四处借钱。二愣家里本来就穷，这回听说他被砸了头，村里人更是避之不及。水月跑了两天，亲戚朋友都转了个遍，一分钱也没借到。 水月愁得满嘴泡，没想到这天晚上，二愣竟好好地回来了。水月上前就看他的头，左看右看也没看出什么异样，水月就问：“你不是被砸了头吗？” 二愣呵呵一笑，说：“我是被大奖砸了头，我只花了两元买了张彩票，就中了二十万！”说着掏出一张崭新的存折来，“你看，交了税，余下的钱都存在这里呢！” 水月抢过存折看了又看，终于相信二愣没说假话，她又哭又笑地捶打二愣：“那你发哪门子神经，还让我四处借钱？” 二愣问：“借到没有？” 水月说：“别说乡亲，连几个亲戚都说没钱。” 二愣一拍大腿，咧开嘴大笑道：“好！这回脸面都撕破了，看他们以后谁好意思找我借钱！”]]></description>
			<content:encoded><![CDATA[<p>城里打工的二愣一个电话打给媳妇水月“水月，我被砸了头，医生说要不少医药费呢！”水月急了，大哭：“那可怎么办啊？”</p>
<p>二愣粗着嗓子吼了一声：“哭有啥用？还不赶紧借钱去！”说完，二愣把手机挂了。</p>
<p>水月开始四处借钱。二愣家里本来就穷，这回听说他被砸了头，村里人更是避之不及。水月跑了两天，亲戚朋友都转了个遍，一分钱也没借到。</p>
<p>水月愁得满嘴泡，没想到这天晚上，二愣竟好好地回来了。水月上前就看他的头，左看右看也没看出什么异样，水月就问：“你不是被砸了头吗？”</p>
<p>二愣呵呵一笑，说：“我是被大奖砸了头，我只花了两元买了张彩票，就中了二十万！”说着掏出一张崭新的存折来，“你看，交了税，余下的钱都存在这里呢！”<br />
<span id="more-114"></span><br />
水月抢过存折看了又看，终于相信二愣没说假话，她又哭又笑地捶打二愣：“那你发哪门子神经，还让我四处借钱？”</p>
<p>二愣问：“借到没有？”</p>
<p>水月说：“别说乡亲，连几个亲戚都说没钱。”</p>
<p>二愣一拍大腿，咧开嘴大笑道：“好！这回脸面都撕破了，看他们以后谁好意思找我借钱！”</p>
]]></content:encoded>
			<wfw:commentRss>http://songlai.com/2011/08/25/%e4%ba%8c%e6%84%a3%e7%9a%84%e8%81%aa%e6%98%8e%e5%8a%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

