﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-orsen成长录</title><link>http://www.blogjava.net/orsen/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 30 Apr 2026 06:26:37 GMT</lastBuildDate><pubDate>Thu, 30 Apr 2026 06:26:37 GMT</pubDate><ttl>60</ttl><item><title>四步搞定Struts验证框架</title><link>http://www.blogjava.net/orsen/archive/2009/09/29/296939.html</link><dc:creator>Orsen</dc:creator><author>Orsen</author><pubDate>Tue, 29 Sep 2009 12:19:00 GMT</pubDate><guid>http://www.blogjava.net/orsen/archive/2009/09/29/296939.html</guid><wfw:comment>http://www.blogjava.net/orsen/comments/296939.html</wfw:comment><comments>http://www.blogjava.net/orsen/archive/2009/09/29/296939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orsen/comments/commentRss/296939.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orsen/services/trackbacks/296939.html</trackback:ping><description><![CDATA[一：form要继承validate以上的form类这样才可以，但是前台验证可以重写父类的validate方法<br />
后台验证必须继承ValidatorForm或ValidatorActionForm，测试发现：如果只做前台验证的话，不论用那个都可以。<br />
二：在struts-config.xml加入，加载Struts的动态验证模块。<br />
&lt;plug-in className="org.apache.struts.validator.ValidatorPlugIn"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set-property property="pathnames" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; value="/org/apache/struts/validator/validator-rules.xml,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; /WEB-INF/validation.xml"/&gt;<br />
&lt;/plug-in&gt;<br />
三：在增加validation.xml文件，配置需要验证的Form表单。<br />
&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
&lt;!DOCTYPE form-validation PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp; "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp; "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"&gt;<br />
&lt;form-validation&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;formset&gt;<br />
&nbsp;&nbsp;&lt;form name="userInfoForm" &gt;<br />
&nbsp;&nbsp;&nbsp;&lt;field property="username" depends="required"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;// resource="false"说明不用Struts的资源文件，输出消息自己写<br />
&nbsp;&nbsp;&nbsp;&nbsp;//有多个Struts资源文件 bundle="这里是自愿文件的key值"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;msg name="required" key="用户名必填" resource="false"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/field&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;field property="password" depends="required"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;msg name="required" key="errors.required"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;//给资源文件赋值研究<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;arg key="errors.required" position="0" name="password"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/field&gt;<br />
&nbsp;&nbsp;&lt;/form&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/formset&gt;<br />
&lt;/form-validation&gt;<br />
四：网页端，在网页中应用。<br />
注意：form一定要用html:form包装，负责不能通过自动验证<br />
&lt;!--使用生成生成脚本验证该表单--&gt;<br />
&lt;html:form action="userinfo.do?method=login"&nbsp; method="post"&nbsp; onsubmit="return validateUserInfoForm(this)"&gt;<br />
&nbsp;用户名称：&lt;input type="text" name="username"&gt;&lt;br&gt;<br />
&nbsp;拥护密码：&lt;input type="password" name="password"&gt;&lt;br&gt;<br />
&nbsp;&lt;input type="submit" value="登陆"&gt;&lt;br&gt;<br />
&lt;/html:form&gt;<br />
&lt;!--动态生成验证脚本--&gt;<br />
&lt;html:javascript formName="userInfoForm"/&gt; 
<img src ="http://www.blogjava.net/orsen/aggbug/296939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orsen/" target="_blank">Orsen</a> 2009-09-29 20:19 <a href="http://www.blogjava.net/orsen/archive/2009/09/29/296939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单实现网邮件爬虫 </title><link>http://www.blogjava.net/orsen/archive/2009/09/24/296353.html</link><dc:creator>Orsen</dc:creator><author>Orsen</author><pubDate>Thu, 24 Sep 2009 14:06:00 GMT</pubDate><guid>http://www.blogjava.net/orsen/archive/2009/09/24/296353.html</guid><wfw:comment>http://www.blogjava.net/orsen/comments/296353.html</wfw:comment><comments>http://www.blogjava.net/orsen/archive/2009/09/24/296353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orsen/comments/commentRss/296353.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orsen/services/trackbacks/296353.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天想学学正则表达式，就随便写了个爬虫。由于才疏学浅，有不足地方请多多指出。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;网页来源，是自己在网上爬写URL保存到文件中，然后在根据文件中的URL来找该网页中的Email地址。具体实现看代码import&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/orsen/archive/2009/09/24/296353.html'>阅读全文</a><img src ="http://www.blogjava.net/orsen/aggbug/296353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orsen/" target="_blank">Orsen</a> 2009-09-24 22:06 <a href="http://www.blogjava.net/orsen/archive/2009/09/24/296353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle 游标的使用</title><link>http://www.blogjava.net/orsen/archive/2009/09/24/296273.html</link><dc:creator>Orsen</dc:creator><author>Orsen</author><pubDate>Thu, 24 Sep 2009 04:58:00 GMT</pubDate><guid>http://www.blogjava.net/orsen/archive/2009/09/24/296273.html</guid><wfw:comment>http://www.blogjava.net/orsen/comments/296273.html</wfw:comment><comments>http://www.blogjava.net/orsen/archive/2009/09/24/296273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orsen/comments/commentRss/296273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orsen/services/trackbacks/296273.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008080">--</span><span style="color: #008080">通过使用隐式游标和记录为mydept表添加内容</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Type&nbsp;&nbsp;dept_rec&nbsp;</span><span style="color: #0000ff">Is</span><span style="color: #000000">&nbsp;Record<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />(<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_deptno&nbsp;&nbsp;dept.deptno</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_dname&nbsp;&nbsp;&nbsp;dept.dname</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_loc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dept.loc</span><span style="color: #808080">%</span><span style="color: #000000">Type<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />v_deptrec&nbsp;&nbsp;&nbsp;dept_rec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Begin</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Select</span><span style="color: #000000">&nbsp;deptno,dname,loc&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;dept<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Where</span><span style="color: #000000">&nbsp;deptno</span><span style="color: #808080">=&amp;</span><span style="color: #000000">dno;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Values</span><span style="color: #000000">&nbsp;v_deptrec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">插值成功</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;NO_DATA_FOUND&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">该部门不存在<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;Others&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">发生异常，插值失败</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">结合游标从DEPT表中查询数据，将相应的数据插入到MYDEPT表中</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />Type&nbsp;&nbsp;dept_rec&nbsp;</span><span style="color: #0000ff">Is</span><span style="color: #000000">&nbsp;Record<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />(<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_deptno&nbsp;&nbsp;dept.deptno</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_dname&nbsp;&nbsp;&nbsp;dept.dname</span><span style="color: #808080">%</span><span style="color: #000000">Type,<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r_loc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dept.loc</span><span style="color: #808080">%</span><span style="color: #000000">Type<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Cursor</span><span style="color: #000000">&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Is</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;dept&nbsp;</span><span style="color: #0000ff">Order</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">By</span><span style="color: #000000">&nbsp;deptno&nbsp;</span><span style="color: #0000ff">Asc</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />v_deptrec&nbsp;&nbsp;&nbsp;dept_rec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Begin</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">打开游标</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Open</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">从游标中取值</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Fetch</span><span style="color: #000000">&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">While</span><span style="color: #000000">(dept_cursor</span><span style="color: #808080">%</span><span style="color: #000000">Found)&nbsp;Loop<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Values</span><span style="color: #000000">&nbsp;v_deptrec;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">插值成功</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Fetch</span><span style="color: #000000">&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;Loop;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Close</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;Others&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">发生异常，插值失败</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">使用面向游标的记录</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />--</span><span style="color: #008080">通过面向游标的记录显示部门信息</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">Cursor</span><span style="color: #000000">&nbsp;dept_cursor<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Is</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Order</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">By</span><span style="color: #000000">&nbsp;deptno&nbsp;</span><span style="color: #0000ff">Asc</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">定义一个面向游标的记录</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">v_deptrec&nbsp;dept_cursor</span><span style="color: #808080">%</span><span style="color: #000000">Rowtype;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">Begin</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Open</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loop&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Fetch</span><span style="color: #000000">&nbsp;&nbsp;dept_cursor&nbsp;</span><span style="color: #0000ff">Into</span><span style="color: #000000">&nbsp;v_deptrec;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Delete</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">From</span><span style="color: #000000">&nbsp;mydept&nbsp;</span><span style="color: #0000ff">Where</span><span style="color: #000000">&nbsp;deptno</span><span style="color: #808080">=</span><span style="color: #000000">v_deptrec.deptno;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(v_deptrec.deptno</span><span style="color: #808080">||</span><span style="color: #ff0000">'</span><span style="color: #ff0000">&nbsp;信息删除成功<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Exit</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;dept_cursor</span><span style="color: #808080">%</span><span style="color: #000000">Notfound&nbsp;;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">End</span><span style="color: #000000">&nbsp;Loop;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Close</span><span style="color: #000000">&nbsp;dept_cursor;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exception&nbsp;</span><span style="color: #0000ff">When</span><span style="color: #000000">&nbsp;Others&nbsp;</span><span style="color: #0000ff">Then</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbms_output.put_line(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">发生异常，删除失败</span><span style="color: #ff0000">'</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">End</span><span style="color: #000000">;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
 <img src ="http://www.blogjava.net/orsen/aggbug/296273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orsen/" target="_blank">Orsen</a> 2009-09-24 12:58 <a href="http://www.blogjava.net/orsen/archive/2009/09/24/296273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中调用Oracle存贮过程</title><link>http://www.blogjava.net/orsen/archive/2009/09/23/296202.html</link><dc:creator>Orsen</dc:creator><author>Orsen</author><pubDate>Wed, 23 Sep 2009 12:15:00 GMT</pubDate><guid>http://www.blogjava.net/orsen/archive/2009/09/23/296202.html</guid><wfw:comment>http://www.blogjava.net/orsen/comments/296202.html</wfw:comment><comments>http://www.blogjava.net/orsen/archive/2009/09/23/296202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orsen/comments/commentRss/296202.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orsen/services/trackbacks/296202.html</trackback:ping><description><![CDATA[-----------------建立储存过程---------------------------------<br />
本存储过程只是为里演示，根据输入的emp表中的id号得到对应的name值。<br />
存储过程代码<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008080">--</span><span style="color: #008080">v_ename&nbsp;输出参数&nbsp;一定要用&nbsp;into&nbsp;给其赋植&nbsp;</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />--</span><span style="color: #008080">v_empno&nbsp;输入参数&nbsp;一定不要用&nbsp;&#8220;:=&#8221;方式是给变量赋植&nbsp;</span><span style="color: #008080"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">or</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">replace</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">procedure</span><span style="color: #000000">&nbsp;getNameById(<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;v_ename&nbsp;out&nbsp;</span><span style="color: #000000; font-weight: bold">varchar2</span><span style="color: #000000">,v_empno&nbsp;</span><span style="color: #808080">in</span><span style="color: #000000">&nbsp;</span><span style="color: #000000; font-weight: bold">number</span><span style="color: #000000">&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;ename&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;v_ename&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;emp&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;empno&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;v_empno;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;getNameById;</span></div>
----------------------java 代码中调用------------------------------<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #808080">//</span><span style="color: #000000">{&nbsp;call&nbsp;getNameById(?,?)&nbsp;}&nbsp;调用储存过程专用语言，无论输出参数输入参数都要用占位<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #808080">//</span><span style="color: #000000">如果有输出参数一定要在执行前对输出参数注册，让JDK知道你要输出什么类型的参数，执行后可以取道输出参数的值<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #808080">//</span><span style="color: #000000">有输入参数要给输入参数赋植<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />CallableStatement&nbsp;cs&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;conn.prepareCall("{&nbsp;call&nbsp;getNameById(?,?)&nbsp;}");<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cs.registerOutParameter(</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">,&nbsp;Types.</span><span style="color: #000000; font-weight: bold">VARCHAR</span><span style="color: #000000">);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cs.setInt(</span><span style="color: #800000; font-weight: bold">2</span><span style="color: #000000">,&nbsp;empno);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cs.</span><span style="color: #0000ff">execute</span><span style="color: #000000">();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;ename&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;cs.getString(</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">);</span></div>
  <img src ="http://www.blogjava.net/orsen/aggbug/296202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orsen/" target="_blank">Orsen</a> 2009-09-23 20:15 <a href="http://www.blogjava.net/orsen/archive/2009/09/23/296202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts实现文件上传</title><link>http://www.blogjava.net/orsen/archive/2009/09/23/296201.html</link><dc:creator>Orsen</dc:creator><author>Orsen</author><pubDate>Wed, 23 Sep 2009 12:02:00 GMT</pubDate><guid>http://www.blogjava.net/orsen/archive/2009/09/23/296201.html</guid><wfw:comment>http://www.blogjava.net/orsen/comments/296201.html</wfw:comment><comments>http://www.blogjava.net/orsen/archive/2009/09/23/296201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/orsen/comments/commentRss/296201.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/orsen/services/trackbacks/296201.html</trackback:ping><description><![CDATA[<p>Struts实现文件上传<br />
---------------------------单文件--------------------------------------<br />
-----jsp页面 一定要加入enctype和method为post<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">html:form&nbsp;</span><span style="color: #ff0000">action</span><span style="color: #0000ff">="/fileUpLoad"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</span><span style="color: #ff0000">&nbsp;enctype</span><span style="color: #0000ff">="multipart/form-data"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;FileName:&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html:text&nbsp;</span><span style="color: #ff0000">property</span><span style="color: #0000ff">="filename"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;File:</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html:file&nbsp;</span><span style="color: #ff0000">property</span><span style="color: #0000ff">="file"</span><span style="color: #0000ff">/&gt;&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html:submit&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html:form</span><span style="color: #0000ff">&gt;</span></div>
-----form中包含个文件属性<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Codehighlighter1_47_361_Open_Image" onclick="this.style.display='none'; Codehighlighter1_47_361_Open_Text.style.display='none'; Codehighlighter1_47_361_Closed_Image.style.display='inline'; Codehighlighter1_47_361_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_47_361_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_47_361_Closed_Text.style.display='none'; Codehighlighter1_47_361_Open_Image.style.display='inline'; Codehighlighter1_47_361_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;FileUpLoadForm&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;ActionForm&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_47_361_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_47_361_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;filename;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;FormFile&nbsp;file;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">这个要记住，这是Struts把文件给封装了。</span><span style="color: #008000"><br />
<img id="Codehighlighter1_153_175_Open_Image" onclick="this.style.display='none'; Codehighlighter1_153_175_Open_Text.style.display='none'; Codehighlighter1_153_175_Closed_Image.style.display='inline'; Codehighlighter1_153_175_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_153_175_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_153_175_Closed_Text.style.display='none'; Codehighlighter1_153_175_Open_Image.style.display='inline'; Codehighlighter1_153_175_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getFilename()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_153_175_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_153_175_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;filename;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_219_250_Open_Image" onclick="this.style.display='none'; Codehighlighter1_219_250_Open_Text.style.display='none'; Codehighlighter1_219_250_Closed_Image.style.display='inline'; Codehighlighter1_219_250_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_219_250_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_219_250_Closed_Text.style.display='none'; Codehighlighter1_219_250_Open_Image.style.display='inline'; Codehighlighter1_219_250_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setFilename(String&nbsp;filename)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_219_250_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_219_250_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.filename&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filename;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_279_297_Open_Image" onclick="this.style.display='none'; Codehighlighter1_279_297_Open_Text.style.display='none'; Codehighlighter1_279_297_Closed_Image.style.display='inline'; Codehighlighter1_279_297_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_279_297_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_279_297_Closed_Text.style.display='none'; Codehighlighter1_279_297_Open_Image.style.display='inline'; Codehighlighter1_279_297_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;FormFile&nbsp;getFile()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_279_297_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_279_297_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;file;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_335_358_Open_Image" onclick="this.style.display='none'; Codehighlighter1_335_358_Open_Text.style.display='none'; Codehighlighter1_335_358_Closed_Image.style.display='inline'; Codehighlighter1_335_358_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_335_358_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_335_358_Closed_Text.style.display='none'; Codehighlighter1_335_358_Open_Image.style.display='inline'; Codehighlighter1_335_358_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setFile(FormFile&nbsp;file)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_335_358_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_335_358_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;file;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
----action中要用二进制来操作文件。如果要写入数据库的话，其实也不太难，用到PreparedStatement进行操作。只贴出来主要代码，部分省略。<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">FileUpLoadForm&nbsp;files&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(FileUpLoadForm)form;<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;files.getFilename();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;realname&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;files.getFile().getFileName();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">用户文件名：</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">filename&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;真实文件名：</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">realname);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;bytes</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;files.getFile().getFileData();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;OutputStream&nbsp;out&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(</span><span style="color: #000000">"</span><span style="color: #000000">c://</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">realname);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out.write(bytes);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out.flush();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out.close();</span></div>
<br />
--改进形式
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;bytes</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[</span><span style="color: #000000">2048</span><span style="color: #000000">];&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">每次都2M的读写</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;in&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;files.getFile().getInputStream();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;OutputStream&nbsp;out&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(</span><span style="color: #000000">"</span><span style="color: #000000">c://</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">realname);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img id="Codehighlighter1_209_232_Open_Image" onclick="this.style.display='none'; Codehighlighter1_209_232_Open_Text.style.display='none'; Codehighlighter1_209_232_Closed_Image.style.display='inline'; Codehighlighter1_209_232_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_209_232_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_209_232_Closed_Text.style.display='none'; Codehighlighter1_209_232_Open_Image.style.display='inline'; Codehighlighter1_209_232_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(&nbsp;(i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;in.read(bytes,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">2048</span><span style="color: #000000">))&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_209_232_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_209_232_Open_Text"><span style="color: #000000">{<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(bytes);<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out.flush();<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out.close();</span></div>
-------------------------------多文件-----------------------------------<br />
本人思路是通过不同的表单属性的名字来区分，和一般从form给vo赋值一样，取一个判断一个，<br />
但是可以吧保存上传的文件操作 可以封装成一个类或者方法，达到重用。
    <img src ="http://www.blogjava.net/orsen/aggbug/296201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/orsen/" target="_blank">Orsen</a> 2009-09-23 20:02 <a href="http://www.blogjava.net/orsen/archive/2009/09/23/296201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>