锘??xml version="1.0" encoding="utf-8" standalone="yes"?>老司机亚洲精品影院在线观看,亚洲国产成人一区二区精品区,亚洲成av人无码亚洲成av人http://www.tkk7.com/feingto/category/10712.html&nbsp;&nbsp;鏀? 鍗?/description>zh-cnThu, 03 Jan 2008 02:25:31 GMTThu, 03 Jan 2008 02:25:31 GMT60鎬庝箞閬垮厤嫻忚鍣ㄧ紦瀛橀潤鎬佹枃浠?/title><link>http://www.tkk7.com/feingto/archive/2008/01/03/172357.html</link><dc:creator>feingto</dc:creator><author>feingto</author><pubDate>Thu, 03 Jan 2008 01:19:00 GMT</pubDate><guid>http://www.tkk7.com/feingto/archive/2008/01/03/172357.html</guid><wfw:comment>http://www.tkk7.com/feingto/comments/172357.html</wfw:comment><comments>http://www.tkk7.com/feingto/archive/2008/01/03/172357.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/feingto/comments/commentRss/172357.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/feingto/services/trackbacks/172357.html</trackback:ping><description><![CDATA[<div id="zdzftpr" class="postbody"> <p>瀵逛簬鍔ㄦ佹枃浠?姣斿 index.asp?id=...  鎴栬?index.aspx?id=... 鐩鎬俊鏈夌粡楠岀殑紼嬪簭鍛橀兘鐭ラ亾鎬庢牱紱佹嫻忚鍣ㄧ紦瀛樻暟鎹簡.<br /> 浣嗘槸瀵逛簬闈欐佹枃浠?css,jpg,gif絳夌瓑), 鍦ㄤ粈涔堝満鍚堜笅闈㈡垜浠渶瑕佺姝㈡祻瑙堝櫒緙撳瓨浠栦滑,鎬庝箞鍋?<br /> <br /> 鏈枃璁ㄨ鐨勪富棰樻槸濡備綍闃茬紦瀛? 灝ゅ叾鏄浣曢槻姝㈤潤鎬佹枃浠惰緙撳瓨..<br /> <br /> <br /> 鍦?nbsp; <a target="_blank">RE:瀵瑰崥瀹㈠洯URL鐨勪竴浜涜皟鏁村緩璁? 浜岀駭鍩熷悕涓嶅埄浜庡鎴風嫻忚鍣ㄧ紦瀛?/a> 涓鏂囦腑,鎴戞彁鍒頒簡鎬庝箞鏈澶у寲鐨?br /> 鍒╃敤嫻忚鍣ㄧ紦瀛樺姛鑳?鏉ユ彁楂樺鎴風嫻忚閫熷害, 鍑忚交鏈嶅姟鍣ㄨ礋鎷呯殑.<br /> <br /> 浣嗘槸浜嬬墿鎬繪槸涓鍒嗕負浜岀殑,騫朵笉鏄墍鏈夌殑鍦哄悎閮借浣跨敤緙撳瓨鐨? 鏈夋椂鍊欐垜浠殑鏁版嵁琚紦瀛樹簡鍙嶈屼細緇欐垜浠甫鏉ラ夯鐑?<br /> <br /> 瀵逛簬鍔ㄦ佹暟鎹紙浠庢暟鎹簱璇誨彇鐢熸垚鐨勯偅浜涳級錛屾垜浠彲浠ラ氳繃浠ヤ笅鏂規(guī)硶鏉ョ姝㈡祻瑙堝櫒緙撳瓨銆?/p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">'</span><span style="color: #008000">asp 涓轟緥 紱佹緙撳瓨</span><span style="color: #008000"><br /> </span><span style="color: #000000"><br /> Response.Buffer </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">True</span><span style="color: #000000"> <br /> Response.ExpiresAbsolute </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">Now</span><span style="color: #000000">() </span><span style="color: #000000">-</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000"> <br /> Response.Expires </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000"> <br /> Response.CacheControl </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000"> <br /> Response.AddHeader </span><span style="color: #000000">"</span><span style="color: #000000">Pragma</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">"</span><span style="color: #000000">No-Cache</span><span style="color: #000000">"</span><span style="color: #000000"> </span></div> <p>瀵逛簬Ajax 鐨勮姹傦紙涓嶇鏄潤鎬佹暟鎹繕鏄姩鎬佹暟鎹級:</p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">//</span><span style="color: #008000">浠ヤ笅涓夌鏂規(guī)硶浣跨敤鍏朵腑浠諱綍涓縐嶆柟娉曢兘鍙互</span><span style="color: #008000"><br /> </span><span style="color: #000000">xmlhttp.setRequestHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Cache-Control</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">);  <br /> </span><span style="color: #008000">//</span><span style="color: #008000">鎴栬?/span><span style="color: #008000"><br /> </span><span style="color: #000000">xmlhttp.setRequestHeader(</span><span style="color: #000000">"</span><span style="color: #000000">If-Modified-Since</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008000">//</span><span style="color: #008000">鎴栬?/span><span style="color: #008000"><br /> </span><span style="color: #000000">xmlhttp.Open(url</span><span style="color: #000000">+</span><span style="color: #000000">'</span><span style="color: #000000">?</span><span style="color: #000000">rnd</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">+</span><span style="color: #000000">Math.random(),....)<br /> </span></div> <p>濡傛灉浣跨敤 prototype.js  , 鐢ㄧ被浼艱繖鏍風殑浠g爜 <br /> new Ajax.Request(url,{method:"get",requestHeaders:[<span style="color: #000000">"</span><span style="color: #000000">Cache-Control</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span>]})<br /> 鎴栬?br /> new Ajax.Request(url,{method:"get",requestHeaders:[<span style="color: #000000"><span style="color: #000000">"</span><span style="color: #000000">If-Modified-Since</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span></span>]})<br />  <br /> <br /> 浠涔堟儏鍐典笅錛岃紱佹闈欐佹枃浠剁紦瀛橈細<br /> 1銆佺粡甯稿彲鑳借鏀瑰姩鐨?js, css.<br />        姣斿 涓涓猦tml 鏂囦歡錛?test.html 鍦?1.0鐗堟湰涓傚彲鑳芥槸榪欐牱<br />      <script src="common.js"></script><br />      淇敼鍚?nbsp; v1.1鐗堟湰錛?br />  <script src="common.js"></script><br />  <script src="foo.js"></script><br />    鏂板鍔犱簡涓涓猣oo.js  鍚屾椂錛屼篃鏀瑰姩浜哻ommon.js , 鍦╟ommon.js 涓畾涔変簡鏂扮殑綾伙紝騫跺湪foo.js 涓嬌鐢ㄤ簡common.js.  <br /> <br /> 鍦ㄨ繖縐嶆儏鍐典笅濡傛灉浠ュ墠鐢ㄦ埛嫻忚榪?1.0鐗堟湰鐨?html 鏂囦歡錛岄偅涔堜粬鐨勬祻瑙堝櫒鑷姩緙撳瓨浜?common.js<br /> 褰撲粬嫻忚鏂扮増鏈殑鏃跺欙紝鍥犱負浣跨敤鐨勬槸 v1.1鐨?foo.js 鍜?v1.0鐨?common.js 錛岃繖鏍峰皢瀵艱嚧鑴氭湰鍑洪敊銆?br /> <br /> <br /> 瑙e喅鏂規(guī)硶鎺㈣錛?br />   鍥犱負css,js 鏄氳繃 <script src=....> 榪欑鏂瑰紡鍔犺澆鐨勶紝鎵浠ワ紝寰堥毦浣跨敤 asp 鐨勯偅縐嶆湇鍔″櫒绔姝㈢紦瀛樼殑鍔炴硶銆備篃寰堥毦浣跨敤ajax鐨勯氳繃璁劇疆 http璇鋒眰澶寸殑鍔炴硶紱佹浣跨敤緙撳瓨銆?br /> <br /> 鐪嬫潵闅忔満鏁版槸涓ソ鍔炴硶銆?/p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">//</span><span style="color: #008000">鏂規(guī)硶涓錛?/span><span style="color: #008000"><br /> </span><span style="color: #000000">document.write(</span><span style="color: #000000">"</span><span style="color: #000000"><script src='test.js?rnd=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">Math.random()</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">'></s</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">cript></span><span style="color: #000000">"</span><span style="color: #000000">)<br /> <br /> </span><span style="color: #008000">//</span><span style="color: #008000">鏂規(guī)硶浜岋細</span><span style="color: #008000"><br /> </span><span style="color: #0000ff">var</span><span style="color: #000000"> js</span><span style="color: #000000">=</span><span style="color: #000000">document.createElement(</span><span style="color: #000000">"</span><span style="color: #000000">script</span><span style="color: #000000">"</span><span style="color: #000000">)<br /> js.src</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">test.js</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">Math.random()<br /> document.body.appendChild(js)</span></div> <p><br /> 浣嗘槸錛屽鏋滈噰鐢ㄩ殢鏈烘暟鐨勮瘽錛?js鏂囦歡灝嗘案榪滃緱涓嶅埌緙撳瓨錛屾瘡嬈¢兘蹇呴』閲嶆柊浠庢湇鍔″櫒鍔犺澆錛屽嵆浣挎病鏈変換浣曟洿鏀廣?br /> 澶у濡傛灉緇忓父涓婂浗澶栫綉绔欑殑璇濓紝鍙互鐪嬪埌浠栦滑閫氬父閲囩敤榪欐牱鐨勬柟寮忔潵瑙e喅錛?br /> <script src="test.js?ver=113"></script><br /> 鍏朵腑 ver=113 鐨?113灝辨槸鐗堟湰鍙鳳紝涓鑸兘鏄噰鐢?CVS 鎴栧叾浠栧伐鍏風敓鎴愮殑寮鍙戠増鏈彿銆?br /> <br /> 榪欐牱鐪熸鍋氬埌浜嗗簲璇ョ紦瀛樼殑鏃跺欑紦瀛橀潤鎬佹枃浠訛紝褰撶増鏈湁鏇存柊鐨勬椂鍊欎粠鑾峰彇鏈鏂扮殑鐗堟湰錛屽茍鏇存柊緙撳瓨銆?br /> 瀵逛簬鍥懼儚 <img src="test.jps?ver=鍦–VS鐨勭増鏈彿"> 鏉ユ湁鏁堝埄鐢ㄥ拰鏇存柊緙撳瓨.<br /> <br /> <br /> 鍞夛紝鐜板湪鍦–SDN鐨刉eb鐗堬紝涓嶇煡閬撴湁澶氬皯浜哄湪閲嶅闂潃鍚屼竴涓棶棰樸?#8220;鎬庝箞閫氳繃紼嬪簭鍒犻櫎娓呯┖瀹㈡埛绔殑嫻忚鍣ㄧ紦瀛?#8221;.........</p> <p> </p> <p>鏈畬寰呯畫錛?<br /> <br /> 涓嬩竴綃囷細  鍒╃敤嫻忚鍣ㄧ紦瀛樻潵鏀瑰杽鐢ㄦ埛浣撻獙銆傘傘傘侫jax妯″紡涔嬮鍏堝姞杞?br /> <br /> 鏁鍏蟲敞錛岀瓑鎴戝啓瀹屽啀鍔犱笂閾炬帴<br /> </p> </div> <img src ="http://www.tkk7.com/feingto/aggbug/172357.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/feingto/" target="_blank">feingto</a> 2008-01-03 09:19 <a href="http://www.tkk7.com/feingto/archive/2008/01/03/172357.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>jsp涓殑鏃墮棿鎿嶄綔http://www.tkk7.com/feingto/archive/2006/05/10/45375.htmlfeingtofeingtoWed, 10 May 2006 02:41:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/10/45375.htmlhttp://www.tkk7.com/feingto/comments/45375.htmlhttp://www.tkk7.com/feingto/archive/2006/05/10/45375.html#Feedback1http://www.tkk7.com/feingto/comments/commentRss/45375.htmlhttp://www.tkk7.com/feingto/services/trackbacks/45375.htmljsp涓殑鏃墮棿鎿嶄綔

緇忓父鐪嬭jsp鐗堥噷鏈変漢闂椂闂存搷浣滅殑闂錛岃繖浜涢棶棰樹竴鑸寘鎷細鍙栧綋鍓嶆椂闂達紝鎶婁竴涓寚瀹氱殑瀛楃涓叉椂闂磋漿鍖栨垚鏃墮棿綾誨瀷錛屾眰涓や釜鏃墮棿涔嬮棿鐨勫ぉ鏁幫紝姹備竴孌墊椂闂翠互鍓嶇殑鏃墮棿錛屾眰涓孌墊椂闂翠互鍚庣殑鏃墮棿錛屽湪榪欓噷灝辨妸榪欎簺闂姹囨諱竴涓嬨?br /><%@  page  contentType="text/html;charset=gb2312"%>
<%@ page import="java.text.*"%>
<%@ page import="java.util.*"%>
<%
//瀛楃涓茶漿鍖栨垚鏃墮棿綾誨瀷錛堝瓧絎︿覆鍙互鏄換鎰忕被鍨嬶紝鍙鍜孲impleDateFormat涓殑鏍煎紡涓鑷村嵆鍙級
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("M/dd/yyyy hh:mm:ss a",java.util.Locale.US);
java.util.Date d = sdf.parse("5/13/2003 10:31:37 AM"); 
out.println(d);
out.println("<br>");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime1=formatter.format(d);
out.println(mDateTime1);
out.println("<br>");
out.println(d.getTime());
out.println("<br>");
//褰撳墠鏃墮棿
Calendar cal  = Calendar.getInstance();
//  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss G E D F w W a E F");
String mDateTime=formatter.format(cal.getTime());
out.println(mDateTime);
out.println("<br>");
//1騫村墠鏃ユ湡
java.util.Date myDate=new java.util.Date(); 
long myTime=(myDate.getTime()/1000)-60*60*24*365;
myDate.setTime(myTime*1000);
String mDate=formatter.format(myDate);
out.println(mDate);
out.println("<br>");
//鏄庡ぉ鏃ユ湡
myDate=new java.util.Date();
myTime=(myDate.getTime()/1000)+60*60*24;
myDate.setTime(myTime*1000);
mDate=formatter.format(myDate);
out.println(mDate);
out.println("<br>");
//涓や釜鏃墮棿涔嬮棿鐨勫ぉ鏁?br />SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date= myFormatter.parse("2003-05-1");
java.util.Date mydate= myFormatter.parse("1899-12-30");
long  day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
out.println(day);
out.println("<br>");
//鍔犲崐灝忔椂
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date1 = format.parse("2002-02-28 23:16:00");
long Time=(date1.getTime()/1000)+60*30;
date1.setTime(Time*1000);
String mydate1=formatter.format(date1);
out.println(mydate1);
out.println("<br>");
//騫存湀鍛ㄦ眰鏃ユ湡
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM F E");
java.util.Date date2= formatter2.parse("2003-05 5 鏄熸湡浜?);
SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
String mydate2=formatter3.format(date2);
out.println(mydate2);
out.println("<br>");
//姹傛槸鏄熸湡鍑?br />mydate= myFormatter.parse("2001-1-1");
SimpleDateFormat formatter4 = new SimpleDateFormat("E");
String mydate3=formatter4.format(mydate);
out.println(mydate3);
out.println("<br>");
%>



feingto 2006-05-10 10:41 鍙戣〃璇勮
]]>
hibernate鐨勪腑鏂囬棶棰樼殑瑙e喅鏂規(guī)http://www.tkk7.com/feingto/archive/2006/05/08/45003.htmlfeingtofeingtoMon, 08 May 2006 06:42:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/08/45003.htmlhttp://www.tkk7.com/feingto/comments/45003.htmlhttp://www.tkk7.com/feingto/archive/2006/05/08/45003.html#Feedback2http://www.tkk7.com/feingto/comments/commentRss/45003.htmlhttp://www.tkk7.com/feingto/services/trackbacks/45003.html緋葷粺閰嶇疆:win2k3 server,jsdk 1.5.0 rc,mysql 4.0.20a,hibernate 2.1.0 ,elcipse 3.0.1
闂鎻忚堪:鍦ㄤ嬌鐢╤ibernate浣滀負鏁版嵁鎸佷箙灞傜殑鏂規(guī)鏃訛紝鐓ф牱浼氶亣鍒頒腑鏂囬棶棰橈紝鍏蜂綋鎯呭喌鏃舵彃鍏ュ埌鏁版嵁搴撲腑鐨勬眽瀛楁樉紺轟負??錛屾樉紺烘暟鎹椂姹夊瓧涓??
鎺㈢儲: 緇忚繃璇曢獙鍙戠幇涓庢眽瀛楃紪鐮佹湁鍏崇殑鍦版柟鏈変互涓嬩袱澶勶紝涓涓槸鏁版嵁搴撹繛鎺rl 錛屼竴涓槸緙栫▼鏃惰幏鍙朇onfiguration 綾葷殑瀹炰緥鐨勮鍙ョ殑鏂瑰紡銆?br />鏂規(guī)1:
聽聽聽 * 緙栫▼鏃惰幏鍙朇onfiguration 綾葷殑瀹炰緥鐨勮鍙ヤ負
聽聽聽 * new Configuration().addClass(xx.class);
聽聽聽 蹇呴』鍦╤ibernate.properties鏂囦歡閲屾暟鎹簱榪炴帴url鍚庡姞涓?characterEncoding=gbk&useUnicode=true
鏂規(guī)2:
聽聽聽 * 緙栫▼鏃惰幏鍙朇onfiguration 綾葷殑瀹炰緥鐨勮鍙ヤ負
聽聽聽 * new Configuration().configure().
聽聽聽 鍦╤ibernate.cfg.xml鏂囦歡鐨?lt;session-factory/>鍧椾腑璁劇疆
聽聽聽聽聽聽聽 <property name="connection.useUnicode">true</property>
聽聽聽聽聽聽聽 <property name="connection.characterEncoding">UTF-8</property>
聽聽聽 鎴栫紪紼嬫椂鍐?
聽聽聽聽聽 Properties extraProperties = new Properties();
聽聽聽聽聽 extraProperties.put("hibernate.connection.useUnicode", "true");
聽聽聽聽聽 extraProperties.put("hibernate.connection.characterEncoding", "UTF-8");
聽聽聽聽聽 myConfiguration.addProperties(extraProperties);

鍘熸潵鎬鐤戜笌xml欏甸潰鐨勭紪鐮佹湁鍏寵瘯浜嗕竴涓嬶紝濂藉儚涓嶈搗浣滅敤銆?br />



feingto 2006-05-08 14:42 鍙戣〃璇勮
]]>
鍦⊿truts妗嗘灦鍐呭疄鐜板浘鐗囦笂浼?(杞澆:http://www.tkk7.com/Todayfreeman/)http://www.tkk7.com/feingto/archive/2006/05/03/44466.htmlfeingtofeingtoWed, 03 May 2006 12:09:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44466.htmlhttp://www.tkk7.com/feingto/comments/44466.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44466.html#Feedback0http://www.tkk7.com/feingto/comments/commentRss/44466.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44466.html

榪欎釜闂璁╂垜閮侀椃浜嗕袱涓夊ぉ鏃墮棿,鏈鍚庢墠鍙戠幇闂鏄湪JSP绔?<html:form action="/uploadsAction"聽 enctype="multipart/form-data"聽 >
鏍囩濡傛灉灝戜簡"聽 enctype="multipart/form-data" 聽鏈嶅姟鍣ㄥ氨浼氭姤閿?
涓嬮潰鎶婁唬鐮佽創(chuàng)鍑烘潵.

JSP绔?br />聽<html:errors />
聽聽聽聽聽聽聽聽聽 <html:form action="/uploadsAction"聽 enctype="multipart/form-data"聽 >
聽聽聽聽聽聽聽聽聽聽聽 <html:file property="theFile" />聽
聽聽聽聽聽聽聽聽聽聽聽聽 <html:radio property="upType" value="a" />CSVFileReader
聽聽聽聽聽聽聽聽聽聽聽聽 <html:radio property="upType" value="b" />FileUp聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽 <html:submit value="OK"聽 />
聽聽聽聽聽聽聽聽聽 </html:form>
FormBean涓皢灞炴у畾涔変負FormFile,geter seter 鏂規(guī)硶渚濇棫.
Action 涓殑浠g爜濡備笅:瀹炵幇灝嗗浘鐗囦笂浼犺嚦UPLOAD鏂囦歡澶瑰唴 濡傛灉鏂囦歡澶т簬20K鎴栨槸瀹斤紗楂樿秴榪囪瀹氳寖鍥寸殑,浼氶噸鏂板嬀鐢?瀹炵幇瀵逛笂浼犲浘鐗囩殑鎺у埗.
褰撶劧榪欏彧鏄祴璇旳ction娌℃湁璺寵漿欏甸潰..

package upload;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import org.apache.struts.upload.*;
import java.io.IOException;
import java.awt.Image;
import java.awt.image.BufferedImage;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;

import java.io.File;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;

public class UploadAction extends Action {
聽聽聽 public ActionForward execute(ActionMapping actionMapping,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ActionForm actionForm,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletRequest servletRequest,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletResponse servletResponse)throws Exception {
聽聽聽聽聽聽聽 System.out.println("asdasdasdasdasdasd");
聽聽聽聽聽聽聽 UploadForm uploadForm = (UploadForm) actionForm;
聽聽聽聽聽聽聽 FormFile pic =聽 uploadForm.getPic();
聽聽聽聽聽聽聽 String picname = pic.getFileName();
聽聽聽聽聽聽聽 String uploadFileName = servletRequest.getSession()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .getServletContext()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .getRealPath("upload")+"\\"+picname;
聽聽聽聽聽聽聽 File upliadFile = new File(uploadFileName);
聽聽聽聽聽聽聽 BufferedInputStream bis = null;
聽聽聽聽聽聽聽 Image image = null;
聽聽聽聽聽聽聽 BufferedOutputStream bos = null;
聽聽聽聽聽聽聽 try{
聽聽聽聽聽聽聽 if(pic.getFileSize()<2*1024*1024){
聽聽聽聽聽聽聽 bis = new BufferedInputStream(pic.getInputStream());
聽聽聽聽聽聽聽 image = javax.imageio.ImageIO.read(bis);
聽聽聽聽聽聽聽 int width = image.getWidth(null);
聽聽聽聽聽聽聽 int height = image.getHeight(null);
聽聽聽聽聽聽聽 int w = 160;
聽聽聽聽聽聽聽 int h = 120;
聽聽聽聽聽聽聽 if(width>w||height>h){
聽聽聽聽聽聽聽 BufferedImage bi = new BufferedImage(w,h,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 BufferedImage.TYPE_INT_RGB);
聽聽聽聽聽聽聽 bi.getGraphics().drawImage(image,0,0,w,h,null);
聽聽聽聽聽聽聽 bos = new BufferedOutputStream(new FileOutputStream(
聽聽聽聽聽聽聽upliadFile));
聽聽聽聽聽聽聽 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
聽聽聽聽聽encoder.encode(bi);
聽聽聽聽聽聽聽 System.out.println(width * height);
聽聽聽聽聽聽聽 }else{
聽聽聽聽聽聽聽 bos = new BufferedOutputStream(new FileOutputStream(upliadFile));
聽聽聽聽聽聽聽 byte[] date = new byte[5*1024];
聽聽聽聽聽聽聽 int len = bis.read(date);
聽聽聽聽聽聽聽 while (len!=-1){
聽聽聽聽聽聽聽聽聽聽聽 bos.write(date);
聽聽聽聽聽聽聽聽聽聽聽 len = bis.read(date);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 return actionMapping.findForward("ok");
聽聽聽聽聽聽聽 }catch(Exception e){
聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽 } finally {
聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽 if (bis != null)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bis.close();
聽聽聽聽聽聽聽 } catch (IOException e1) {

聽聽聽聽聽聽聽聽聽聽聽 e1.printStackTrace();
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽 if (bos != null)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bos.close();
聽聽聽聽聽聽聽 } catch (IOException e2) {

聽聽聽聽聽聽聽聽聽聽聽 e2.printStackTrace();
聽聽聽聽聽聽聽 }
聽聽聽 }

聽聽聽聽聽聽聽 return actionMapping.findForward("ok");
聽聽聽 }
}



feingto 2006-05-03 20:09 鍙戣〃璇勮
]]>
Struts1.2涓厤緗暟鎹簮http://www.tkk7.com/feingto/archive/2006/05/03/44465.htmlfeingtofeingtoWed, 03 May 2006 12:05:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44465.htmlhttp://www.tkk7.com/feingto/comments/44465.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44465.html#Feedback1http://www.tkk7.com/feingto/comments/commentRss/44465.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44465.html杞歡鐜錛歍omcat5.5.15,Eclipse3.1.2,MyEclipse4.1,MySQL5.0.15,Resin3.0.18

閰嶇疆榪囩▼錛?/p>

涓銆佷笅杞藉繀瑕佺殑jar鍖呫傛湁鍥涗釜鍖呰涓嬭澆錛堢綉涓婃湁璐村瓙璇村彧瑕佷笅闈㈠墠涓変釜鍖呭氨鍙互浜嗭紝浣嗘垜鍦ㄩ厤緗殑鏃跺欏鏋滄病鏈夌鍥涗釜鍖呬細鎶ラ敊錛夈?br />http://apache.linuxforum.net/dist/jakarta/commons/dbcp/binaries/commons-dbcp-1.2.zip
http://apache.linuxforum.net/dist/jakarta/commons/pool/binaries/commons-pool-1.2.zip
http://apache.linuxforum.net/dist/jakarta/struts/struts-legacy/struts-legacy-1.0.zip
http://apache.linuxforum.net/dist/jakarta/commons/collections/binaries/commons-collections-3.1.zip
鎶婅繖鍥涗釜jar鍖呮斁鍒皐eb搴旂敤鐨刉EB-INF/lib鐩綍涓嬶紝榪樻湁瑕佹妸MySQL鐨勯┍鍔ㄧ▼搴忓寘涔熸斁鍒拌繖閲岋紙涔熷彲浠ユ妸鏁版嵁搴撶殑椹卞姩鍖呮斁鍒?Tomcat_Home%/common/lib鐩綍涓嬫垨%Resin_Home%/lib鐩綍涓嬶紝榪欐牱鍦ㄥ惎鍔╓eb鏈嶅姟鍣ㄧ殑鏃跺欏氨浼氬姞杞借繖涓寘錛屾湇鍔″櫒鍜學eb搴旂敤閮藉彲浠ヤ嬌鐢ㄩ┍鍔ㄧ▼搴忕被錛?/p>

浜屻佸湪struts-config.xml涓坊鍔燚ata Source銆侻yEclipse鐨凞esign妯″紡涓嬪彲浠ュ彲瑙嗗寲鍦扮紪杈憇truts-config.xml鍜屾坊鍔燚ata Source錛屼絾瀹冨湪struts-config.xml涓敓鎴愮殑鏁版嵁婧愮殑浠g爜鏄敊璇殑錛佸氨鏄洜涓鴻繖涓借浜嗘垜寰堝鏃墮棿錛?br />鎴戜滑鎵嬪伐緙栬緫浠g爜錛?/p>

  <data-sources>
    <data-source key="datasource" type="org.apache.commons.dbcp.BasicDataSource">
      <set-property property="password" value="admin" />
      <set-property property="minCount" value="3" />
      <set-property property="maxCount" value="10" />
      <set-property property="username" value="admin" />
      <set-property property="driverClassName" value="com.mysql.jdbc.Driver" />
      <set-property property="description" value="test" />
      <set-property property="url" value="jdbc:mysql://localhost/test" />
      <set-property property="readOnly" value="false" />
      <set-property property="autoCommit" value="true" />
    </data-source>
  </data-sources>

濡傛灉瑕侀厤緗涓猟ata source錛屽彲浠ョ粰姣忎釜data source鎸囧畾涓嶅悓鐨刱ey錛岀劧鍚庡湪紼嬪簭涓牴鎹甼ey鎸囧畾瑕佸紩鐢ㄧ殑鏁版嵁婧愩?/p>

涓夈佹祴璇曟暟鎹簮銆傞厤緗ソ浠ュ悗灝卞彲浠ュ湪ActionServlet涓嬌鐢ㄤ簡銆?/p>

  DataSource ds = getDataSource(request,"datasource");
  Connection conn = ds.getConnection();
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery("SQL String");

闄勶細 Struts1.1涓璼truts-config.xml鐨勯厤緗細

  <data-sources >
    <data-source key="datasource" type="org.apache.struts.util.GenericDataSource">
      <set-property property="password" value="admin" />
      <set-property property="minCount" value="2" />
      <set-property property="maxCount" value="10" />
      <set-property property="user" value="admin" />
      <set-property property="driverClass" value="com.mysql.jdbc.Driver" />
      <set-property property="description" value="test" />
      <set-property property="url" value="jdbc:mysql://localhost/test" />
      <set-property property="readOnly" value="false" />
      <set-property property="autoCommit" value="true" />
    </data-source>
  </data-sources>

娉ㄦ剰錛氳摑鑹插瓧浣撶殑閮ㄥ垎鏄?.1鍜?.2鍦ㄩ厤緗笂涓嶄竴鏍風殑鍦版柟銆?br />



feingto 2006-05-03 20:05 鍙戣〃璇勮
]]>
涓涓珮鏁堢畝媧佺殑Struts鍒嗛〉鏂規(guī)硶http://www.tkk7.com/feingto/archive/2006/05/03/44462.htmlfeingtofeingtoWed, 03 May 2006 12:04:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44462.htmlhttp://www.tkk7.com/feingto/comments/44462.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44462.html#Feedback0http://www.tkk7.com/feingto/comments/commentRss/44462.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44462.html銆銆
銆銆涓銆?寮鍙戠幆澧?br />銆銆
銆銆鎴戠殑寮鍙戠幆澧冩槸錛欽Builder x + Weblogic 8.1 + Oracle 9i + Windows 2003 錛屽鏋滄湅鍙嬩滑鐨勫紑鍙戠幆澧冧笉涓鏍蜂害鏃犲Θ銆?br />銆銆
銆銆浜屻佸紑鍙戞濊礬
銆銆
銆銆鏃㈢劧璁茬殑鏄疭truts錛岄偅鑷劧紱諱笉浜哅VC錛屽垎欏墊樉紺轟篃鏄姝ゃ?br />銆銆
銆銆1銆?寤虹珛鏁版嵁搴撳拰瀵瑰簲鐨勮〃錛屾湰渚嬬殑琛ㄦ槸TCertificate銆?br />銆銆
銆銆2銆?寤虹珛閫傚綋鐨勬ā鍨嬬粍浠訛紝瀵瑰簲浣犺鏌ヨ鏁版嵁搴撲腑鐨勮〃銆傝繖閮ㄥ垎鐢盌AO鏁版嵁璁塊棶灞傛潵瀹炵幇錛屽鏋滄湁鐨勬湅鍙嬪DAO涓嶇啛鎮(zhèn)夊彲浠ユ煡璇竴涓嬬浉鍏寵祫鏂欍傛湰渚嬬敱CertificateDAO.java鏉ュ疄鐜般?br />銆銆
銆銆3 銆佸緩绔嬪垎欏墊墍闇瑕佺殑妯″瀷緇勪歡錛岀敱javaBean鏉ュ厖褰擄紝騫朵笌CertificateDAO瀹炵幇鍒嗙銆傜綉涓婁粙緇嶇殑寰堝鏂規(guī)硶錛岄兘瀛樺湪鐫鏁版嵁涓庡垎欏電粍浠惰棔鍚堢殑鐜拌薄錛岃繖涔熸槸鏈柟娉曚笌鍏跺畠鍒嗛〉鏂規(guī)硶鐨勪富瑕佷笉鍚屼箣澶勩?br />銆銆
銆銆4銆佸緩绔嬫帶鍒跺櫒緇勪歡錛岃繖閮ㄥ垎鐢盨truts 涓殑Action鏉ュ疄鐜般備富瑕佽礋璐e皢瀹炰緥鍖朇ertificateDAO錛屽彧鍙栬鏄劇ず鐨勬暟鎹褰曪紝瀛樺叆ArrayList瀵硅薄鐒跺悗榪斿洖錛屽茍鏀懼埌 request涓傝屽垎欏甸儴鍒嗗垯鏍規(guī)嵁鍒嗛〉鏉′歡錛屽崟鐙繘琛屾瀯閫狅紝閬垮厤浜嗕笌DAO娣峰湪涓璧風殑鎯呭喌鍙戠敓銆傜綉涓婂叾瀹冧粙緇嶇殑涓浜涘垎欏墊柟娉曚腑錛屽熀鏈笂閮芥槸涓嬈℃ц鍑烘墍鏈夋煡璇㈢殑鏁版嵁錛岀劧鍚庡啀鐢卞垎欏電浉鍏崇粍浠惰繘琛屾瀯閫犮傝繖鏍鳳紝濡傛灉鏁版嵁閲忓ぇ鐨勮瘽錛屽緢瀹規(guī)槗褰㈡垚鐡墮銆傚湪鏈緥涓敱浜庝笉鏄竴嬈℃у湴璇誨嚭鏌ヨ鐨勬墍鏈夋暟鎹紝鑰屽彧鏄鍑轟竴涓〉闈㈣鏄劇ず鐨勬暟鎹褰曪紝榪欏氨鑺傜渷浜嗗緢澶氫笉蹇呰鐨勬暟鎹紶杈擄紝鎻愰珮浜嗘晥鐜囥傛湰渚嬩腑涓篊ertificateAction.java銆?br />銆銆
銆銆 5銆佸緩绔嬭鍥劇粍浠訛紝榪欓儴鍒嗙敱jsp鏉ュ厖褰擄紝涓轟簡涓嶅嚭鐜癹ava 浠g爜錛屾垜浠嬌鐢⊿truts鎻愪緵鐨勬爣絳懼簱錛屼富瑕佽礋璐d粠request涓彇鍑哄垰鍒氭斁鍏ョ殑瀵硅薄錛岄氳繃鍙嶅璋冪敤CertificateAction浠ュ強 action鍙傛暟錛岃屽疄鐜板垎欏墊樉紺恒傛湰渚嬩腑涓簂istcertificate.jsp銆?br />銆銆
銆銆6銆?寤虹珛騫墮厤緗畇truts-config.xml銆?br />銆銆
銆銆涓夈佸疄渚嬩唬鐮?br />銆銆
銆銆紜畾濂戒笂闈㈢殑寮鍙戞濊礬鍚庯紝浠g爜鐨勫疄鐜板氨鏈夊崟鍙驚浜嗐?br />銆銆
銆銆1銆佸緩鏁版嵁搴撳拰鐩稿簲鐨勮〃銆?br />銆銆
銆銆2銆佹暟鎹昏緫灞傜殑鐩稿叧浠g爜銆?br />銆銆
銆銆1錛夈侀氱敤鐨凞AO綾伙細CommonDAO.java
銆銆
銆銆榪欐槸涓涓緢澶欴AO閮借緇ф壙鍒扮殑閫氱敤DAO綾伙紝鏄垜鏍規(guī)嵁瀹炶返鎬葷粨鍑烘潵鐨勶紝涓轟簡鍑忓皯綃囧箙錛岃繖閲屽彧鏄劇ず鍜屾湰渚嬬浉鍏崇殑浠g爜銆?br />銆銆
銆銆java浠g爜:
銆銆
銆銆浠g爜錛?br />銆銆--------------------------------------------------------------------------------
銆銆package com.xindeco.business ;
銆銆import java.io.*;
銆銆import java.sql.*;
銆銆import java.util.*;
銆銆import javax.sql.*;
銆銆import java.lang.IllegalAccessException;
銆銆import java.lang.reflect.InvocationTargetException;
銆銆import org.apache.commons.beanutils.BeanUtils;
銆銆public class DAO
銆銆{
銆銆protected DataSource ds;
銆銆/**
銆銆* 璇存槑:鍙栧緱褰撳墠鏌ヨ鐨勬昏褰曟暟
銆銆*/
銆銆public int getRows ()
銆銆{
銆銆return this.count;
銆銆}
銆銆public void rsHandler (ResultSet rs, int offset, int limit)
銆銆{
銆銆try
銆銆{
銆銆count = 0;
銆銆rs.absolute ( -1) ;
銆銆count = rs.getRow () ;
銆銆if (offset <= 0)
銆銆{
銆銆rs.beforeFirst () ;
銆銆}
銆銆else
銆銆{
銆銆rs.absolute (offset) ;
銆銆}
銆銆}
銆銆catch (Exception e)
銆銆{
銆銆e.printStackTrace () ;
銆銆}
銆銆}
銆銆public DAO(DataSource ds) {
銆銆this.ds = ds;
銆銆}
銆銆
銆銆public void setDataSource(DataSource ds) {
銆銆this.ds = ds;
銆銆}
銆銆
銆銆protected void close(ResultSet rs) {
銆銆if (rs != null) {
銆銆try {
銆銆rs.close();
銆銆} catch (SQLException e) {
銆銆}
銆銆rs = null;
銆銆}
銆銆}
銆銆
銆銆protected void close(PreparedStatement pstmt) {
銆銆if (pstmt != null) {
銆銆try {
銆銆pstmt.close();
銆銆} catch (SQLException e) {
銆銆}
銆銆pstmt = null;
銆銆}
銆銆}
銆銆protected void close(Connection conn) {
銆銆if (conn != null) {
銆銆try {
銆銆conn.close();
銆銆} catch (SQLException e) {
銆銆e.printStackTrace();
銆銆}
銆銆conn = null;
銆銆}
銆銆}
銆銆
銆銆protected void rollback(Connection conn) {
銆銆if (conn != null) {
銆銆try {
銆銆conn.rollback();
銆銆} catch (SQLException e) {
銆銆e.printStackTrace();
銆銆}
銆銆conn = null;
銆銆}
銆銆}
銆銆}
銆銆
銆銆榪欎釜綾諱富瑕佹槸閫氳繃瀛愮被浼犺繘鏉ョ殑鍏堣繘緇撴灉闆嗭紝鍙栧緱鏌ヨ鐨勮褰曟繪暟錛屽茍瀵規(guī)暟鎹簱榪炴帴榪涜綆鍗曠殑綆$悊銆?br />銆銆
銆銆2錛夈佸鏁版嵁搴撹繘琛岃闂細CertificateDAO.java
銆銆
銆銆java浠g爜:
銆銆
銆銆浠g爜錛?br />銆銆--------------------------------------------------------------------------------
銆銆package com.xindeco.business;
銆銆
銆銆import java.io.*;
銆銆import java.sql.*;
銆銆import java.util.*;
銆銆import javax.sql.*;
銆銆
銆銆import com.xindeco.common.dbconn.DbConn;
銆銆
銆銆public class CertificateDAO extends DAO
銆銆{
銆銆
銆銆public NationDAO(DataSource ds) {
銆銆super(ds);
銆銆}
銆銆
銆銆public List findCertificateList(int offset,int limit) throws SQLException
銆銆{
銆銆int countRows = 0 ;
銆銆ArrayList list = null ;
銆銆Connection conn = null;
銆銆PreparedStatement pstmt = null;
銆銆ResultSet rs = null;
銆銆try
銆銆{
銆銆conn = ds.getConnection();
銆銆String sql =
銆銆"SELECT certificateID, certificateCode,certificateName,photoURL,"
銆銆+ "description,graduateID FROM TCertificate " ;
銆銆pstmt = conn.prepareStatement(sql);
銆銆rs = pstmt.executeQuery();
銆銆/*瀵規(guī)父鏍囪繘琛屽鐞嗭紝rsHandler 鏂規(guī)硶鍦ㄧ埗綾籇AO涓?/
銆銆this.rsHandler(rs,offset,limit);
銆銆if (rs != null && rs.next ())
銆銆{
銆銆list = new ArrayList () ;
銆銆do
銆銆{
銆銆countRows++ ;
銆銆list.add (rs2VO (rs)) ;
銆銆}
銆銆while ( (countRows++ < limit) && rs.next ()) ;
銆銆}
銆銆close(rs);
銆銆close(pstmt);
銆銆} catch (SQLException e) {
銆銆close(rs);
銆銆close(pstmt);
銆銆rollback(conn);
銆銆e.printStackTrace();
銆銆}
銆銆finally {
銆銆close(conn);
銆銆}
銆銆return list ;
銆銆}
銆銆
銆銆private CertificateVO rs2VO (ResultSet rs)
銆銆{
銆銆try
銆銆{
銆銆CertificateVO certificateVO = new CertificateVO () ;
銆銆certificateVO.setCertificateID (rs.getInt ("certificateID")) ;
銆銆certificateVO.setCertificateCode (rs.getString ("certificateCode")) ;
銆銆certificateVO.setCertificateName (rs.getString ("certificateName")) ;
銆銆certificateVO.setPhotoURL (rs.getString ("photoURL")) ;
銆銆certificateVO.setDescription (rs.getString ("description")) ;
銆銆certificateVO.setGraduateID (rs.getInt ("graduateID")) ;
銆銆return certificateVO ;
銆銆}
銆銆catch (Exception ex)
銆銆{
銆銆ex.printStackTrace () ;
銆銆return null ;
銆銆}
銆銆}
銆銆}
銆銆
銆銆findCertificateList(int offset,int limit)鏄煡寰楁墍鏈夎鏄劇ず鐨勬暟鎹紝騫舵斁鍏rrayList涓傜湅榪囩綉涓婃湁浜涗緥瀛愶紝鎶婃暟鎹褰曟斁鍏rrayList鐨勫姩浣滆繃紼嬬洿鎺ュ湪while寰幆浣撻噷瀹屾垚錛屽鏋滃瓧孌靛鐨勮瘽錛屼細閫犳垚鏂規(guī)硶榪囦簬瀹犲ぇ錛屽張涓嶇編瑙傘傝繖閲岋紝鏁版嵁璁板綍鏀懼叆ArrayList鐨勫姩浣滆繃紼嬬敱rs2VO鏂規(guī)硶瀹屾垚錛屽氨姣旇緝鏁存磥浜嗐傚彟澶栵紝if (rs != null && rs.next ()) 閰嶅悎while ( (countRows++ < limit) && rs.next ()) 鏄負浜嗙▼搴忕殑鍋ュ.鎬ц冭檻鐨勶紝紼嶅垎鏋愪竴涓嬩笉闅懼緱鍑虹粨璁恒?br />銆銆
銆銆3銆佸緩绔嬫帶鍒跺櫒緇勪歡錛欳ertificateAction.java
銆銆
銆銆java浠g爜:
銆銆
銆銆浠g爜錛?br />銆銆--------------------------------------------------------------------------------
銆銆package com.xindeco.presentation;
銆銆
銆銆import javax.sql.* ;
銆銆import java.util.* ;
銆銆
銆銆import javax.servlet.http.* ;
銆銆import javax.servlet.* ;
銆銆
銆銆import org.apache.struts.action.* ;
銆銆import org.apache.struts.util.* ;
銆銆
銆銆import com.xindeco.common.Pager;
銆銆import com.xindeco.business.graduatedata.CertificateDAO ;
銆銆
銆銆public class CertificateAction
銆銆extends Action
銆銆{
銆銆private static final int PAGE_LENGTH = 5 ; //姣忛〉鏄劇ず5鏉¤褰?br />銆銆public ActionForward execute (ActionMapping mapping, Actionform form,
銆銆HttpServletRequest request,
銆銆HttpServletResponse response)
銆銆{
銆銆ActionForward myforward = null ;
銆銆String myaction = mapping.getParameter () ;
銆銆
銆銆if (isCancelled (request))
銆銆{
銆銆return mapping.findForward ("failure") ;
銆銆}
銆銆if ("".equalsIgnoreCase (myaction))
銆銆{
銆銆myforward = mapping.findForward ("failure") ;
銆銆}
銆銆else if銆銆銆銆("LIST".equalsIgnoreCase (myaction))
銆銆{
銆銆myforward = performList (mapping, form, request, response) ;
銆銆}
銆銆else
銆銆{
銆銆myforward = mapping.findForward ("failure") ;
銆銆}
銆銆return myforward ;
銆銆}
銆銆
銆銆private ActionForward performList (ActionMapping mapping,
銆銆Actionform actionform,
銆銆HttpServletRequest request,
銆銆HttpServletResponse response)
銆銆{
銆銆try
銆銆{
銆銆DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);
銆銆
銆銆CertificateDAO銆 certificateDAO銆= new CertificateDAO銆(ds) ;
銆銆
銆銆int offset = 0;銆 //緲婚〉鏃剁殑璧峰璁板綍鎵鍦ㄦ父鏍?br />銆銆int length = PAGE_LENGTH;
銆銆String pageOffset = request.getParameter("pager.offset");
銆銆if (pageOffset == null || pageOffset.equals("")) {
銆銆offset = 0;
銆銆} else {
銆銆offset = Integer.parseInt(pageOffset);
銆銆}
銆銆List certificateList = certificateDAO .findCertificateList (offset,length) ;
銆銆int size = certificateDAO.getRows(); //銆鍙栧緱鎬昏褰曟暟
銆銆String url = request.getContextPath()+"/"+mapping.getPath()+".do";
銆銆String pagerHeader = Pager.generate(offset, size, length, url); //鍒嗛〉澶勭悊
銆銆
銆銆request.setAttribute ("pager", pagerHeader) ;
銆銆request.setAttribute ("list", certificateList) ;
銆銆}
銆銆catch (Exception e)
銆銆{
銆銆e.printStackTrace();
銆銆return mapping.findForward ("error") ;
銆銆}
銆銆return mapping.findForward ("success") ;
銆銆}
銆銆}
銆銆
銆銆CertificateAction.java涓昏鏄妸鏁版嵁浠嶥AO涓彇鍑猴紝騫舵斁鍏ヤ竴涓狝rrayList 涓紝鐒跺悗閫氳繃閰嶇疆鏂囦歡鍐嶈蔣浠禫iew鐨凧SP欏點?br />銆銆
銆銆5銆佸緩绔嬭鍥緇istcertificate.jsp鏂囦歡銆?br />銆銆
銆銆jsp浠g爜:
銆銆
銆銆浠g爜錛?br />銆銆--------------------------------------------------------------------------------
銆銆
銆銆<%@ page contentType="text/html; charset=GBK" %>
銆銆<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
銆銆<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
銆銆<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
銆銆<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
銆銆
銆銆<table bgcolor="#666666" cellpadding="1" cellspacing="0" border="0" width="500">
銆銆<tr>
銆銆<td>
銆銆<table cellpadding="0" cellspacing="0" border="0" width="500">
銆銆<tr>
銆銆<td bgcolor="#fecc51">&</td>
銆銆</tr>
銆銆</table>
銆銆</td>
銆銆</tr>
銆銆<tr>
銆銆<td>
銆銆<table cellpadding="0" cellspacing="0" border="0" width="500">
銆銆<tr>
銆銆<td bgcolor="#d6e0ed">
銆銆&&<bean:message key="label.list4certificate"/>
銆銆</td>
銆銆</tr>
銆銆<tr bgcolor="#FFFFFF">
銆銆<td width="5%"></td><td width="19%"></td><td width="76%"></td>
銆銆</tr>
銆銆<tr>
銆銆<td>
銆銆<table bgcolor="#f2f2f2" width="500" cellspacing="0" border="0">
銆銆<tr bgcolor="#bacce1">
銆銆<td><b><bean:message key="Certificate.select"/> </b></td>
銆銆<td><b><bean:message key="Certificate.certificateID"/> </b></td>
銆銆<td><b><bean:message key="Certificate.certificateCode"/></b></td>
銆銆<td><b><bean:message key="Certificate.certificateName"/></b></td>
銆銆<td><b><bean:message key="Certificate.view"/></b></td>
銆銆</tr>
銆銆
銆銆<bean:write name="pager" property="description"/>
銆銆<logic:equal name="pager" property="hasPrevious" value="true">
銆銆<a href="/graduatedata/list.do?viewPage=<bean:write name="pager" property="previousPage"/>" class="a02">
銆銆Previous
銆銆</a>
銆銆</logic:equal>
銆銆<logic:equal name="pager" property="hasNext" value="true">
銆銆<a href="/graduatedata/list.do?viewPage=<bean:write name="pager" property="nextPage"/>" class="a02">
銆銆Next
銆銆</a>
銆銆</logic:equal>
銆銆
銆銆<logic:notEmpty name="list" scope="request">
銆銆<logic:iterate id="certificate" name="list" type="com.xindeco.business.graduatedata.CertificateVO"scope="request">
銆銆<tr bgcolor="#FFFFFF">
銆銆<td><html:text property="name" value="<bean:write name="certificate" property="certificateID" scope="page"/>"/>
銆銆</td>
銆銆<td> <bean:write name="certificate" property="certificateID" scope="page"/></td>
銆銆<td> <bean:write name="certificate" property="certificateCode" scope="page"/></td>
銆銆<td> <bean:write name="certificate" property="certificateName" scope="page"/></td>
銆銆<td> <bean:write name="certificate" property="photoURL" scope="page"/></td>
銆銆</tr>
銆銆</logic:iterate>
銆銆</logic:notEmpty>
銆銆</table>
銆銆</td>
銆銆</tr>
銆銆</table>
銆銆</td>
銆銆</tr>
銆銆</table>
銆銆
銆銆6銆佸搴旂殑閰嶇疆鏂囦歡struts-config.xml銆?br />銆銆
銆銆java浠g爜:
銆銆
銆銆浠g爜錛?br />銆銆--------------------------------------------------------------------------------
銆銆<?xml version="1.0" encoding="UTF-8"?>
銆銆<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "銆銆<struts-config>
銆銆<form-beans>
銆銆<form-bean name="certificateform" type="com.xindeco.presentation.graduatedata.Certificateform" />
銆銆</form-beans>
銆銆<global-forwards>
銆銆<forward name="error" path="/error/error.jsp" />
銆銆</global-forwards>
銆銆<action-mappings>
銆銆<action name="certificateform" parameter="LIST" path="/graduatedata/list" scope="request" type="com.xindeco.presentation.graduatedata.CertificateAction" validate="true">
銆銆<forward name="success" path="/graduatedata/listcertificate.jsp" />
銆銆</action>
銆銆</action-mappings>
銆銆鈥︹?br />銆銆</struts-config>
銆銆
銆銆7銆佹渶鍚庡綋鐒舵槸鏈閲嶈鐨勫垎欏典唬鐮佷簡錛歅ager.java
銆銆
銆銆java浠g爜:
銆銆
銆銆浠g爜錛?br />銆銆--------------------------------------------------------------------------------
銆銆package com.xindeco.common;
銆銆
銆銆import java.util.* ;
銆銆public class Pager {
銆銆private static int MAX_PAGE_INDEX = 10; //欏佃剼鏄劇ず澶氬皯欏?br />銆銆private static String HEADER = "Result page";
銆銆
銆銆public static String generate(int offset, int length, int size, String url) {
銆銆if (length > size) {
銆銆String pref;
銆銆if (url.indexOf("?") > -1) {
銆銆pref = "&";
銆銆} else {
銆銆pref = "?";
銆銆}
銆銆String header = "<font face='Helvetica' size='-1'>"+HEADER+": ";
銆銆if (offset > 0) {
銆銆header += "&<a href=\""+url+pref+"pager.offset="+(offset-size)+"\">[<< Prev]</a>\n";
銆銆}
銆銆int start;
銆銆int radius = MAX_PAGE_INDEX/2*size;
銆銆if (offset < radius) {
銆銆start = 0;
銆銆} else if(offset < length-radius) {
銆銆start = offset - radius;
銆銆} else {
銆銆start = (length/size-MAX_PAGE_INDEX)*size;
銆銆}
銆銆for(int i=start;i<length && i < start + MAX_PAGE_INDEX*size;i+=size) {
銆銆if (i == offset) {
銆銆header += "<b>"+(i/size+1)+"</b>\n";
銆銆} else {
銆銆header += "&<a href=\""+url+pref+"pager.offset="+i+"\">"+(i/size+1)+"</a>\n";
銆銆}
銆銆}
銆銆if(offset < length - size) {
銆銆header += "&<a href=\""+url+pref+"pager.offset="+((int)offset+(int)size)+"\">[Next >>]</a>\n";
銆銆}
銆銆header += "</font>";
銆銆return header;
銆銆} else {
銆銆return "";
銆銆}
銆銆}
銆銆}
銆銆
銆銆榪欓儴鍒嗕唬鐮佺殑瀹炵幇鐩稿綋綆媧侊紝浣嗗凡緇忚凍澶熷畬鎴愭墍闇浜嗐?

feingto 2006-05-03 20:04 鍙戣〃璇勮
]]>
struts涓殑鍒嗛〉瀹炰緥http://www.tkk7.com/feingto/archive/2006/05/03/44463.htmlfeingtofeingtoWed, 03 May 2006 12:04:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44463.htmlhttp://www.tkk7.com/feingto/comments/44463.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44463.html#Feedback0http://www.tkk7.com/feingto/comments/commentRss/44463.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44463.htmlstruts涓殑鍒嗛〉瀹炰緥聽
聽聽
聽聽聽 榪欎粎鏄竴涓叆闂ㄥ疄渚嬶紝綆媧佸疄鐢紝浠庣綉涓婃暣鐞嗚屾潵錛屼緵鍙傝冦傝繖閲屼粎鍒楀嚭閮ㄥ垎鏂囦歡錛屽叾瀹冩枃浠躲佹暟鎹簱鍙婄洰褰曠粨鏋勮浠庢湰绔欎笅杞姐?
涓銆乻truts-config.xml閰嶇疆錛屼富瑕佹槸閰嶆暟鎹簱,榪欓噷鐢╝ccess銆?
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
聽聽聽聽聽聽聽聽聽 "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
聽聽聽聽聽聽聽聽聽 "


<struts-config>
<data-sources>
聽聽 <data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="url" value="jdbc:odbc:page" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="username" value="admin" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="password" value="" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="maxActive" value="20" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="maxWait" value="5000" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="defaultAutoCommit" value="true" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="defaultReadOnly" value="false" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="validationQuery" value="SELECT 1" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="removeAbandoned" value="true" />
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="removeAbandonedTimeout" value="120" />聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽 <set-property property="encoding" value="false" />聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 </data-source>

聽</data-sources>
聽 <form-beans>
聽 </form-beans>
聽 <global-forwards>
聽 </global-forwards>

聽 <action-mappings>
聽 <action path="/page" type="page.DataSourceAction" scope="request">
聽 <forward name="success" path="/pagetest.jsp"/>
聽 </action>
聽 </action-mappings>

聽 <controller>
聽 </controller>
</struts-config>

浜屻丄ction綾?
鐢?page.do?start=1 鏉ユ樉紺虹涓涓〉闈⒙?
鍙傛暟璇存槑錛毬?
聽 list錛氫俊鎭垪琛?
聽 start錛氬紑濮嬩綅緗?
聽 page錛氭瘡欏墊樉紺虹殑淇℃伅鏁扮洰聽
聽 pages: 鎬婚〉鏁?
聽 previous錛氫笂欏靛紑濮嬩綅緗?
聽 next錛氫笅欏靛紑濮嬩綅緗?

package page;
import org.apache.struts.action.*;
import javax.servlet.http.*;

import java.util.*;
import javax.sql.*;
import java.sql.*;
import bean.*;

public class DataSourceAction extends Action {

聽public DataSourceAction(){}

聽public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
聽HttpServletResponse response) throws Exception {聽聽聽
聽 try{
聽聽聽聽聽 DataSource ds=this.getDataSource(request,"dataSource");聽聽聽
聽聽聽聽聽 Connection con = ds.getConnection();
聽聽聽聽聽 Statement stmt = con.createStatement();
聽聽聽聽聽 ResultSet resultSet = stmt.executeQuery("select count(*) from book" );聽
聽聽聽聽聽 resultSet.next();聽
聽聽聽聽聽 int data_num=resultSet.getInt(1);聽
聽聽聽聽聽 int start=1;
聽聽聽聽聽 int page = 4; //姣忛〉鐨勮褰曟暟銆?
聽聽聽聽聽 int pages=data_num/page;
聽聽聽聽聽 if(data_num%page!=0)
聽聽聽聽聽聽聽聽 pages++;
聽聽聽聽聽 if(request.getParameter("start")!=null)
聽聽聽聽聽聽聽聽聽 start = Integer.parseInt(request.getParameter("start"));聽
聽聽聽聽聽 if(request.getParameter("go")!=null){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int go = Integer.parseInt(request.getParameter("go"));聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if(go<=1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 start=1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if(go>pages)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 start=(pages-1)*page+1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 start=(go-1)*page+1;
聽聽聽聽聽聽 }聽
聽聽聽聽聽
聽聽聽聽聽 String sql = "SELECT * FROM book where id>="+start+" and id<"+(start+page);
聽聽聽聽聽 resultSet = stmt.executeQuery(sql);聽聽
聽聽聽聽聽 ArrayList list = new java.util.ArrayList();聽
聽聽聽聽聽 while(resultSet.next())
聽聽聽聽聽 {聽聽
聽聽聽聽聽聽聽 int id=resultSet.getInt("id");
聽聽聽聽聽聽聽 String name = resultSet.getString("name");
聽聽聽聽聽聽聽 String author = resultSet.getString("author");
聽聽聽聽聽聽聽 String price = resultSet.getString("price");
聽聽聽聽聽聽聽 System.out.println("寮濮嬫暟鎹皝瑁咃細name="+name+"author="+author+"price="+price);
聽聽聽聽聽聽聽 Book book= new Book(id,name,author,price);聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 list.add(book);
聽聽聽聽聽 }
聽聽聽 con.close();
聽聽聽 request.setAttribute("pages",new Integer(pages));
聽聽聽 request.setAttribute("list",list);
聽聽聽 //request.setAttribute("start", new Integer(start));聽
聽聽聽 request.setAttribute("page", new Integer(page));聽

聽聽聽聽聽聽聽 // if there is a previous page, set the previous variable聽
聽聽聽聽聽聽聽 int previous = start-page;聽
聽聽聽聽聽聽聽 if ( previous>=0 ){聽
聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("previous", new Integer(previous));聽
聽聽聽聽聽聽聽聽聽聽聽 System.out.println ("previous:" + previous);聽
聽聽聽聽聽聽聽 }聽

聽聽聽聽聽聽聽 // if there is a next page, set the next variable聽
聽聽聽聽聽聽聽 int next = start+page;聽
聽聽聽聽聽聽聽 if ( next<=data_num ){聽
聽聽聽聽聽聽聽聽聽聽聽 request.setAttribute("next", new Integer(next));聽
聽聽聽聽聽聽聽聽聽聽聽 System.out.println ("next:" + next);聽
聽聽聽聽聽聽聽 }聽

聽聽 }catch(SQLException e){
聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽聽聽 System.out.println("鏁版嵁搴撹繛鎺ュ嚭鐜板紓甯?);
聽聽聽聽聽 }聽
聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽 return (mapping.findForward("success"));
聽 }聽
}


涓夈乥ean綾籅ook.java
package bean;
import java.sql.*;
import java.util.ArrayList;
public class Book {
聽int id;
聽private String bookname; //涔﹀悕
聽private String author;聽聽 //浣滆?
聽private String price;聽聽聽 //浠鋒牸

public Book(int id,String name,String author,String price){
聽this.id=id;
聽this.bookname=name;
聽this.author=author;
聽this.price=price;
}

public int getId(){聽
聽聽聽聽聽聽聽 return id;聽
聽聽聽 }聽

聽public String getAuthor() {
聽 return author;
聽}

聽public void setAuthor(String author) {
聽 this.author = author;
聽}

聽public String getBookname() {
聽 return bookname;
聽}

聽public void setBookname(String bookname) {
聽 this.bookname = bookname;
聽}

聽public String getPrice(){
聽聽聽聽 return this.price;聽
聽}

聽public void setPrice(String price){
聽聽聽聽 this.price=price;聽
聽}

}
鍥涖佸垎欏電殑jsp欏甸潰pagetest.jsp,鐢ㄤ簡jstl涓殑c鏍囪銆?
<%@ page contentType="text/html; charset=gb2312" language="java"%>
<%@ page import="java.util.*" %>
<%@ page import="bean.*" %>
<%@ taglib prefix="c" uri="
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

<logic:iterate id="book" name="list" type="bean.Book">聽
聽聽聽聽聽聽聽聽聽聽聽 <br><html:link聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 paramId="id" paramName="book" paramProperty="id"聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page="/messagedetail.do">聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 <bean:write name="book" property="bookname" />聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </html:link>聽
</logic:iterate>聽

<form action="/TestPage/page.do">
聽聽 <logic:present name="previous">聽
聽聽聽聽聽聽聽聽聽聽聽 <html:link聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 paramId="start" paramName="previous"聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page="/page.do">聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 涓婁竴欏德?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </html:link>聽
聽聽 </logic:present>聽

聽聽 <logic:present name="next">聽
聽聽聽聽聽聽聽聽聽聽聽聽聽 <html:link聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 paramId="start" paramName="next"聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 page="/page.do">聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 涓嬩竴欏德?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 </html:link>聽
聽聽 </logic:present>聽

姣忛〉<c:out value="${page}"/>鏉¤褰?鍏?lt;c:out value="${pages}"/>欏德?璺沖埌<input type="text"聽 name="go" size="3" maxlength="30" >
<input type="submit" value="go" >
</form>
聽聽聽聽聽聽聽聽聽

OK!!!!
浜斻佹祴璇曪紝璇蜂笅杞芥湰瀹炰緥鐨勭洰褰曠粨鏋凾estPage,鏀懼叆tomcat鐨剋ebapps涓嬶紝鍦ㄦ祻瑙堝櫒涓緭鍏ワ細
聽聽聽
http://127.0.0.1:8080/TestPage/page.do
鏉ユ簮錛?java瀛︿範瀹?br />聽



feingto 2006-05-03 20:04 鍙戣〃璇勮
]]>
Struts+Hibernate寮鍙戝疄璺?鍒嗛〉鐨勫疄鐜?/title><link>http://www.tkk7.com/feingto/archive/2006/05/03/44464.html</link><dc:creator>feingto</dc:creator><author>feingto</author><pubDate>Wed, 03 May 2006 12:04:00 GMT</pubDate><guid>http://www.tkk7.com/feingto/archive/2006/05/03/44464.html</guid><wfw:comment>http://www.tkk7.com/feingto/comments/44464.html</wfw:comment><comments>http://www.tkk7.com/feingto/archive/2006/05/03/44464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/feingto/comments/commentRss/44464.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/feingto/services/trackbacks/44464.html</trackback:ping><description><![CDATA[ <p>鍦ㄨ繘琛寃eb搴旂敤寮鍙戠殑鏃跺欑粡甯歌榪涜鍒嗛〉澶勭悊錛岀粡甯哥湅鍒頒竴浜涗漢鍦ㄩ棶鍒嗛〉澶勭悊鐨勯棶棰橈紝鐜板湪鎴戞妸鑷繁鐨勫鐞嗘柟娉曞啓鍦ㄨ繖鍎匡紝甯屾湜鑳藉闇瑕佽繘琛屽垎欏靛鐞嗙殑鏈嬪弸鏈夋墍甯姪銆?</p> <p>涓銆佸湪struts涓垎欏墊湁涓ょ緇撴瀯錛?<br />聽聽聽 1. 鍦ˋction涓氳繃DAO鏌ヨ鍑烘墍鏈夌殑璁板綍錛岀劧鍚庡姞鍒皊ession鎴杛equest瀵硅薄涓紝浼犲埌瀹㈡埛绔紝鐢盝SP榪涜鍒嗛〉銆傝繖縐嶆柟娉曞浜庡湪鏁版嵁閲忓皯鐨勬椂鍊欏緢鏂逛究錛屼篃涓嶅獎鍝嶉熷害銆?<br />聽聽聽 2.鍦ˋction涓瘡嬈¢氳繃DAO鍙煡璇㈠嚭涓欏電殑璁板綍錛屽啀浼犵粰JSP欏甸潰銆傝繖縐嶇粨鏋勫浜庢暟鎹噺澶х殑紼嬪簭寰堝ソ錛屼絾瀵逛簬鏁版嵁閲忓皬鐨勬儏鍐碉紝浼氬鍔犲鏈嶅姟鍣ㄧ殑璇鋒眰錛屽姞澶ф湇鍔″櫒鐨勮礋杞姐?<br />聽聽聽聽聽 <br />浜屻丠ibernate鏌ヨ <br />聽聽聽 鐢變簬鍦℉ibernate涓洿鎺ユ彁渚涗簡瀵規(guī)暟鎹簱瀹氱偣瀹氶噺鐨勬煡璇㈡柟娉曪紝鎵浠ユ垜閲囩敤鐨勬槸絎?縐嶆柟娉曘?</p> <p>濡傦細 <br />浠庣1涓囨潯寮濮嬪彇鍑?00鏉¤褰?<br />Query q = session.createQuery("from Cat as c"); <br />q.setFirstResult(10000); <br />q.setMaxResults(100); <br />List l = q.list(); </p> <p>涓夈佸叿浣撳疄鐜?</p> <p>聽1.Pager綾?</p> <p>package com.jpcf.db.helper; </p> <p>import java.math.*; </p> <p>public class Pager { <br />聽 private int totalRows; //鎬昏鏁?<br />聽 private int pageSize = 10; //姣忛〉鏄劇ず鐨勮鏁?<br />聽 private int currentPage; //褰撳墠欏靛彿 <br />聽 private int totalPages; //鎬婚〉鏁?<br />聽 private int startRow; //褰撳墠欏靛湪鏁版嵁搴撲腑鐨勮搗濮嬭 </p> <p>聽 public Pager() { <br />聽 } </p> <p>聽 public Pager(int _totalRows) { <br />聽聽聽 totalRows = _totalRows; <br />聽聽聽 totalPages=totalRows/pageSize; <br />聽聽聽 int mod=totalRows%pageSize; <br />聽聽聽 if(mod>0){ <br />聽聽聽聽聽 totalPages++; <br />聽聽聽 } <br />聽聽聽 currentPage = 1; <br />聽聽聽 startRow = 0; <br />聽 } </p> <p>聽 public int getStartRow() { <br />聽聽聽 return startRow; <br />聽 } </p> <p>聽 public int getTotalPages() { <br />聽聽聽 return totalPages; <br />聽 } </p> <p>聽 public int getCurrentPage() { <br />聽聽聽 return currentPage; <br />聽 } </p> <p>聽 public int getPageSize() { <br />聽聽聽 return pageSize; <br />聽 } </p> <p>聽 public void setTotalRows(int totalRows) { <br />聽聽聽 this.totalRows = totalRows; <br />聽 } </p> <p>聽 public void setStartRow(int startRow) { <br />聽聽聽 this.startRow = startRow; <br />聽 } </p> <p>聽 public void setTotalPages(int totalPages) { <br />聽聽聽 this.totalPages = totalPages; <br />聽 } </p> <p>聽 public void setCurrentPage(int currentPage) { <br />聽聽聽 this.currentPage = currentPage; <br />聽 } </p> <p>聽 public void setPageSize(int pageSize) { <br />聽聽聽 this.pageSize = pageSize; <br />聽 } </p> <p>聽 public int getTotalRows() { <br />聽聽聽 return totalRows; <br />聽 } </p> <p>聽 public void first() { <br />聽聽聽 currentPage = 1; <br />聽聽聽 startRow = 0; <br />聽 } </p> <p>聽 public void previous() { <br />聽聽聽 if (currentPage == 1) { <br />聽聽聽聽聽 return; <br />聽聽聽 } <br />聽聽聽 currentPage--; <br />聽聽聽 startRow = (currentPage - 1) * pageSize; <br />聽 } </p> <p>聽 public void next() { <br />聽聽聽 if (currentPage < totalPages) { <br />聽聽聽聽聽 currentPage++; <br />聽聽聽 } <br />聽聽聽 startRow = (currentPage - 1) * pageSize; <br />聽 } </p> <p>聽 public void last() { <br />聽聽聽 currentPage = totalPages; <br />聽聽聽 startRow = (currentPage - 1) * pageSize; <br />聽 } </p> <p>聽 public void refresh(int _currentPage) { <br />聽聽聽 currentPage = _currentPage; <br />聽聽聽 if (currentPage > totalPages) { <br />聽聽聽聽聽 last(); <br />聽聽聽 } <br />聽 } </p> <p>} </p> <p>Pager綾葷敤浜庤綆楅欏點佸墠涓欏點佷笅涓欏點佸熬欏電殑鍦ㄦ暟鎹簱涓殑璧峰琛岋紝褰撳墠鐨勯〉鐮併?</p> <p>2.PagerHelp綾?</p> <p>package com.jpcf.db.helper; </p> <p>import javax.servlet.http.*; </p> <p>public class PagerHelper { </p> <p>聽 public static Pager getPager(HttpServletRequest httpServletRequest,int totalRows) { </p> <p>聽聽聽 //瀹氫箟pager瀵硅薄錛岀敤浜庝紶鍒伴〉闈?<br />聽聽聽 Pager pager = new Pager(totalRows); </p> <p>聽聽聽 //浠嶳equest瀵硅薄涓幏鍙栧綋鍓嶉〉鍙?<br />聽聽聽 String currentPage = httpServletRequest.getParameter("currentPage"); </p> <p>聽聽聽 //濡傛灉褰撳墠欏靛彿涓虹┖錛岃〃紺轟負棣栨鏌ヨ璇ラ〉 <br />聽聽聽 //濡傛灉涓嶄負絀猴紝鍒欏埛鏂皃ager瀵硅薄錛岃緭鍏ュ綋鍓嶉〉鍙風瓑淇℃伅 <br />聽聽聽 if (currentPage != null) { <br />聽聽聽聽聽 pager.refresh(Integer.parseInt(currentPage)); <br />聽聽聽 } </p> <p>聽聽聽 //鑾峰彇褰撳墠鎵ц鐨勬柟娉曪紝棣栭〉錛屽墠涓欏碉紝鍚庝竴欏碉紝灝鵑〉銆?<br />聽聽聽 String pagerMethod = httpServletRequest.getParameter("pageMethod"); </p> <p>聽聽聽 if (pagerMethod != null) { <br />聽聽聽聽聽 if (pagerMethod.equals("first")) { <br />聽聽聽聽聽聽聽 pager.first(); <br />聽聽聽聽聽 } else if (pagerMethod.equals("previous")) { <br />聽聽聽聽聽聽聽 pager.previous(); <br />聽聽聽聽聽 } else if (pagerMethod.equals("next")) { <br />聽聽聽聽聽聽聽 pager.next(); <br />聽聽聽聽聽 } else if (pagerMethod.equals("last")) { <br />聽聽聽聽聽聽聽 pager.last(); <br />聽聽聽聽聽 } <br />聽聽聽 } <br />聽聽聽 return pager; <br />聽 } <br />} </p> <p>PageHelper榪欎釜綾伙紝鎴戜笉鐢ㄨ搴旇涔熺煡閬撶敤鏉ュ共鍢涗簡 </p> <p>3.DAO綾?</p> <p>package com.jpcf.db.dao; </p> <p>import com.jpcf.db.model.*; <br />import com.jpcf.db.helper.HibernateUtil; <br />import net.sf.hibernate.*; <br />import java.util.*; <br />import com.jpcf.db.controller.*; </p> <p>public class VehiclePropertyDAO { </p> <p>聽 public Collection findWithPage(int pageSize, int startRow) throws HibernateException { <br />聽聽聽 Collection vehicleList = null; <br />聽聽聽 Transaction tx = null; <br />聽聽聽 try { <br />聽聽聽聽聽 Session session = HibernateUtil.currentSession(); <br />聽聽聽聽聽 tx = session.beginTransaction(); <br />聽聽聽聽聽 Query q = session.createQuery("from VehicleProperty vp"); <br />聽聽聽聽聽 q.setFirstResult(startRow); <br />聽聽聽聽聽 q.setMaxResults(pageSize); <br />聽聽聽聽聽 vehicleList = q.list(); <br />聽聽聽聽聽 tx.commit(); <br />聽聽聽 } catch (HibernateException he) { <br />聽聽聽聽聽 if (tx != null) { <br />聽聽聽聽聽聽聽 tx.rollback(); <br />聽聽聽聽聽 } <br />聽聽聽聽聽 throw he; <br />聽聽聽 } finally { <br />聽聽聽聽聽 HibernateUtil.closeSession(); <br />聽聽聽 } <br />聽聽聽 return vehicleList; <br />聽 } </p> <p>聽 public int getRows(String query) throws HibernateException { <br />聽聽聽 int totalRows = 0; <br />聽聽聽 Transaction tx = null; <br />聽聽聽 try { <br />聽聽聽聽聽 Session session = HibernateUtil.currentSession(); <br />聽聽聽聽聽 tx = session.beginTransaction(); <br />聽聽聽聽聽 totalRows = ((Integer) session.iterate(query).next()).intValue(); <br />聽聽聽聽聽 tx.commit(); <br />聽聽聽 } catch (HibernateException he) { <br />聽聽聽聽聽 if (tx != null) { <br />聽聽聽聽聽聽聽 tx.rollback(); <br />聽聽聽聽聽 } <br />聽聽聽聽聽 throw he; <br />聽聽聽 } finally { <br />聽聽聽聽聽 HibernateUtil.closeSession(); <br />聽聽聽 } </p> <p>聽聽聽 return totalRows; <br />聽 } </p> <p>} <br />DAO綾繪垜灝辮創(chuàng)榪欎簺鍒嗛〉闇瑕佺殑浠g爜浜嗐?<br />鈥渇rom VehicleProperty vp鈥濅篃鍙互鐢ㄤ竴涓弬鏁頒紶榪涙潵錛屾湁鍏磋叮鐨勮嚜宸辨敼涓涓嬪惂 </p> <p>4.Action </p> <p>涓嬮潰鏄湪Action涓敤鍒扮殑浠g爜錛?<br />聽 public ActionForward execute(ActionMapping actionMapping, <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ActionForm actionForm, <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletRequest httpServletRequest, <br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletResponse httpServletresponse) { <br />聽聽聽聽 Collection clInfos = null;//鐢ㄤ簬杈撳嚭鍒伴〉闈㈢殑璁板綍闆嗗悎 <br />聽聽聽聽 int totalRows;//璁板綍鎬昏鏁?<br />聽聽聽聽 VehiclePropertyDAO vehicleDAO = new VehiclePropertyDAO(); </p> <p>聽聽聽 //鍙栧緱褰撳墠琛ㄤ腑鐨勬昏鏁?<br />聽聽聽 try { <br />聽聽聽聽聽 totalRows = vehicleDAO.getRows("select count(*) from VehicleProperty"); <br />聽聽聽 } catch (Exception ex) { <br />聽聽聽聽聽 servlet.log(ex.toString()); <br />聽聽聽聽聽 return actionMapping.findForward(Constants.FAILURE); <br />聽聽聽 } </p> <p>聽聽聽 //閫氳繃PagerHelper綾繪潵鑾峰彇鐢ㄤ簬杈撳嚭鍒伴〉闈㈢殑pager瀵硅薄 <br />聽聽聽 Pager pager=PagerHelper.getPager(httpServletRequest,totalRows); </p> <p>聽聽聽 //鍙栧嚭浠巗tartRow寮濮嬬殑pageSize琛岃褰?<br />聽聽聽 try { <br />聽聽聽聽聽 clInfos = vehicleDAO.findWithPage(pager.getPageSize(), pager.getStartRow()); <br />聽聽聽 } catch (Exception ex) { <br />聽聽聽聽聽 servlet.log(ex.toString()); <br />聽聽聽聽聽 return actionMapping.findForward(Constants.FAILURE); <br />聽聽聽 } </p> <p>聽聽聽 //鎶婅緭鍑虹殑璁板綍闆嗗拰pager瀵硅薄淇濆瓨鍒皉equest瀵硅薄涓?<br />聽聽聽 httpServletRequest.setAttribute("CLINFOS", clInfos); <br />聽聽聽 httpServletRequest.setAttribute("PAGER", pager); </p> <p>聽聽聽 return actionMapping.findForward(Constants.SUCCESS); <br />聽 } </p> <p>聽聽 鏌ヨ璇彞select count(*) from VehicleProperty 涔熷彲浠ユ崲鎴愪綘闇瑕佺殑浠繪剰鐨勬潯浠訛紙select count(*)聽 </p> <p>from VehicleProperty where ..) </p> <p> <br />5.JSP欏甸潰浣跨敤 </p> <p>涓嬮潰灝辨槸鍦↗SP涓殑搴旂敤浜嗭細 </p> <p><td colspan="8" align="right" class="head"> <br />聽聽 絎?lt;bean:write name="PAGER" property="currentPage"/>欏德?<br />聽聽 鍏?lt;bean:write name="PAGER" property="totalPages"/>欏德?<br />聽聽 <html:link action="/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=first"聽 <br />paramName="PAGER" paramProperty="currentPage" paramId="currentPage">棣栭〉</html:link> <br />聽聽 <html:link action="/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=previous"聽 <br />paramName="PAGER" paramProperty="currentPage" paramId="currentPage">涓婁竴欏?lt;/html:link> <br />聽聽 <html:link action="/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=next"聽 <br />paramName="PAGER" paramProperty="currentPage" paramId="currentPage">涓嬩竴欏?lt;/html:link> <br />聽聽 <html:link action="/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=last"聽 <br />paramName="PAGER" paramProperty="currentPage" paramId="currentPage">灝鵑〉</html:link> <br /></td> </p> <p>聽聽 瑙i噴涓涓嬭繖涓琛?"/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=first <br />method=queryWithPage 鏄敱浜庢垜鐨凙ction緇ф壙鐨勬槸DispatchAction,闇瑕佷竴涓猰ethod鍙傛暟 <br />pageMethod=first 鏄敤鏉ュ湪PageHelper綾諱腑鍒ゆ柇鎵ц鍝釜鎿嶄綔 </p> <p>鍥涖佹葷粨 </p> <p>聽聽聽 鎴戝仛鐨勮繖涓篃鍙槸涓涓熼壌錛岃繕鏈夊緢澶氭病鏈夊疄鐜扮殑錛屾瘮濡傝繕鍙互鍔犱竴涓?go 鐩存帴鍒扮n欏電殑鍔熻兘銆?<br />聽聽聽 鍏跺疄鏈鍏抽敭鐨勬槸鎶婂綋鍓嶉〉鍙峰拰瑕佹墽琛岀殑鏄姛鑳?涓婁竴欏碉紝涓嬩竴欏?鐨勫弬鏁頒粠欏甸潰浼犺繘鏉ワ紝鍦ˋction涓氨鍙互鏍規(guī)嵁榪欎袱涓弬鏁板幓鍙栦笅涓涓〉闈笂瑕佹樉紺虹殑璁板綍闆嗕簡銆?</p> <img src ="http://www.tkk7.com/feingto/aggbug/44464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/feingto/" target="_blank">feingto</a> 2006-05-03 20:04 <a href="http://www.tkk7.com/feingto/archive/2006/05/03/44464.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Hibernate鏌ヨ瑙e喅鏂規(guī)http://www.tkk7.com/feingto/archive/2006/05/03/44460.htmlfeingtofeingtoWed, 03 May 2006 12:03:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44460.htmlhttp://www.tkk7.com/feingto/comments/44460.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44460.html#Feedback0http://www.tkk7.com/feingto/comments/commentRss/44460.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44460.html闃呰鍏ㄦ枃

feingto 2006-05-03 20:03 鍙戣〃璇勮
]]>
鐢╯truts涓婁紶鏂囦歡http://www.tkk7.com/feingto/archive/2006/05/03/44461.htmlfeingtofeingtoWed, 03 May 2006 12:03:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44461.htmlhttp://www.tkk7.com/feingto/comments/44461.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44461.html#Feedback1http://www.tkk7.com/feingto/comments/commentRss/44461.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44461.html鐢ㄥ埌鐨勭被import org.apache.struts.upload.FormFile;

Jsp涓婁紶欏甸潰錛?

<%@ page contentType="text/html; charset=GBK" %>

<html>

<head>

<title>

strutsUploadForm

</title>

</head>

<body bgcolor="#ffffff">

<h1>

涓婁紶嫻嬭瘯

</h1>

<form action="uploadTestAction.do" method="post" enctype="multipart/form-data" name="form1">

聽 <p>鏂囨湰

聽聽聽 <input name="theText" type="text" id="theText">

</p>

聽 <p>鏂囦歡

聽聽聽 <input name="theFile" type="file" id="theFile">

</p>

聽 <p>淇濆瓨鍒?

聽聽聽 <input name="saveTo" type="text" id="saveTo">

</p>

聽 <p>

聽聽聽 <input type="submit" name="Submit" value="鎻愪氦">

</p>

</form>

</body>

</html>

actionForm

package hehe;

import org.apache.struts.action.*;

import javax.servlet.http.*;

import org.apache.struts.upload.FormFile;

public class UploadTestForm extends ActionForm {

聽 private String saveTo;

聽 private String theText;

聽 private org.apache.struts.upload.FormFile theFile;//鏂囦歡妗嗗搴旂殑鏄痜ormFile綾誨瀷

聽 public String getSaveTo() {

聽聽聽 return saveTo;

聽 }

聽 public void setSaveTo(String saveTo) {

聽聽聽 this.saveTo = saveTo;

聽 }

聽 public org.apache.struts.upload.FormFile getTheFile() {

聽聽聽 return theFile;

聽 }

聽 public void setTheFile(org.apache.struts.upload.FormFile theFile) {

聽聽聽 this.theFile = theFile;

聽 }

聽 public String getTheText() {

聽聽聽 return theText;

聽 }

聽 public void setTheText(String theText) {

聽聽聽 this.theText = theText;

聽 }

聽 public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {

聽聽聽 /**@todo: finish this method, this is just the skeleton.*/

聽聽聽 if(!this.getTheFile().getContentType().equals("image/pjpeg")){

聽聽聽聽聽 System.out.println("涓嶆槸jpg");

聽聽聽 }//鍙互鍒ゆ柇綾誨瀷

聽聽聽 if(this.getTheFile().getFileSize()>100){

聽聽聽聽聽 System.out.println("闀垮害澶т簬1000");

聽聽聽 }//鍙互鍒ゆ柇澶у皬

聽聽聽 return null;

聽 }

聽 public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {

聽聽聽 saveTo = null;

聽聽聽 theFile = null;

聽聽聽 theText = null;

聽 }

}

Action

package hehe;

import org.apache.struts.action.*;

import org.apache.struts.upload.FormFile;

import javax.servlet.http.*;

import java.io.*;

public class UploadTestAction

聽聽聽 extends Action {

聽 public ActionForward execute(ActionMapping actionMapping,

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ActionForm actionForm,

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletRequest request,

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 HttpServletResponse response) {

聽聽聽 UploadTestForm uploadForm = (UploadTestForm) actionForm;

聽聽聽 FormFile file = uploadForm.getTheFile();

聽聽聽 String path = uploadForm.getSaveTo();

聽聽聽 String theText = uploadForm.getTheText();

聽聽聽 try {

聽聽聽聽聽 InputStream input = file.getInputStream();//鑳戒粠FormFile涓幏寰楄緭鍏ユ祦

聽聽聽聽聽 OutputStream output = new FileOutputStream(path);

聽聽聽聽聽 int bytesReader = 0;

聽聽聽聽聽 byte[] readbuffer = new byte[8192];

聽聽聽聽聽 while ( (bytesReader = input.read(readbuffer, 0, 8192)) != -1) {

聽聽聽聽聽聽聽 output.write(readbuffer, 0, bytesReader);

聽聽聽聽聽 }

聽聽聽聽聽 output.close();

聽聽聽 }

聽聽聽 catch (Exception e) {

聽聽聽聽聽 e.printStackTrace();

聽聽聽 }

聽聽聽 request.setAttribute("theText", theText);

聽聽聽 request.setAttribute("fileName", file.getFileName());//涓婁紶鐨勬枃浠跺悕

聽聽聽 request.setAttribute("fileSize", new Integer(file.getFileSize()));//鏂囦歡澶у皬

聽聽聽 request.setAttribute("fileType", file.getContentType());//鏂囦歡綾誨瀷

聽聽聽 return actionMapping.findForward("success");

聽 }

}

緇撴灉欏甸潰

<%@ page contentType="text/html; charset=GBK" %>

<html>

<head>

<title>

strutsUploadResult

</title>

</head>

<body bgcolor="#ffffff">

<h1>

涓婁紶緇撴灉

</h1>

鏂囦歡鍚嶏細<%=request.getAttribute("fileName")%><br />

鏂囨湰錛?lt;%=request.getAttribute("theText")%><br />

鏂囦歡綾誨瀷錛?lt;%=request.getAttribute("fileType")%><br />

鏂囦歡澶у皬錛?lt;%=request.getAttribute("fileSize")%><br />

</body>

</html>



feingto 2006-05-03 20:03 鍙戣〃璇勮
]]>
struts閿欒鍜屼俊鎭殑澶勭悊http://www.tkk7.com/feingto/archive/2006/05/03/44458.htmlfeingtofeingtoWed, 03 May 2006 12:02:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44458.htmlhttp://www.tkk7.com/feingto/comments/44458.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44458.html#Feedback0http://www.tkk7.com/feingto/comments/commentRss/44458.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44458.html 1. 閿欒鍜屼俊鎭殑澶勭悊 .

棣栧厛鍦ㄨ祫婧愭枃浠朵腑瀹氫箟閿欒淇℃伅鍜屾櫘閫氫俊鎭?/span> . 濡?/span> :MessageResources.properties 涓畾涔夊涓?/span> :

java 浠g爜 :聽



#
# Resources
for testing <html:errors> tag.
#

errors.header=<table>
errors.footer=</table>
errors.prefix=<tr><td>
errors.suffix=</td></tr>

property1error1=Property 1,
Error 1
property2error1=Property 2,
Error 1
property2error2=Property 2,
Error 2
property2error3=Property 2,
Error 3
property3error1=Property 3,
Error 1
property3error2=Property 3,
Error 2
globalError=Global
Error

#
# Resources
for testing <html:messages> tag.
#

messages.header=<table>
messages.footer=</table>

property1message1=Property 1, Message 1
property2message1=Property 2, Message 1
property2message2=Property 2, Message 2
property2message3=Property 2, Message 3
property3message1=Property 3, Message 1
property3message2=Property 3, Message 2
globalMessage=Global Message



鍦ㄧ▼搴忎腑瀹氫箟閿欒鍜屼俊鎭被 , 榪欎釜渚嬪瓙鍐欏湪 JSP 涓?/span>

java 浠g爜 :聽



<%
聽 聽 聽 ActionErrors errors =
new ActionErrors();
聽 聽 聽 errors.add("property1",
new ActionError("property1error1"));
聽 聽 聽 errors.add("property2",
new ActionError("property2error1"));
聽 聽 聽 errors.add("property2",
new ActionError("property2error2"));
聽 聽 聽 errors.add("property2",
new ActionError("property2error3"));
聽 聽 聽 errors.add("property3",
new ActionError("property3error1"));
聽 聽 聽 errors.add("property3",
new ActionError("property3error2"));
聽 聽 聽 errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("globalError"));
聽 聽 聽 request.setAttribute(Globals.ERROR_KEY, errors);

聽 聽 聽 ActionMessages messages =
new ActionMessages();
聽 聽 聽 messages.add("property1",
new ActionMessage("property1message1"));
聽 聽 聽 messages.add("property2",
new ActionMessage("property2message1"));
聽 聽 聽 messages.add("property2",
new ActionMessage("property2message2"));
聽 聽 聽 messages.add("property2",
new ActionMessage("property2message3"));
聽 聽 聽 messages.add("property3",
new ActionMessage("property3message1"));
聽 聽 聽 messages.add("property3",
new ActionMessage("property3message2"));
聽 聽 聽 messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("globalMessage"));
聽 聽 聽 request.setAttribute(Globals.MESSAGE_KEY, messages);
聽 聽 %>





鏄劇ず閿欒 :

java 浠g爜 :聽



<html:errors property="property1" />
<html:errors property="property2" />


鏄劇ず淇℃伅 :

java 浠g爜 :聽



<html:messages property="property1" message="
true " id="msg" header="messages.header" footer="messages.footer">
聽 聽 聽 聽 聽 聽 <tr>
聽 聽 聽 聽 聽 聽 聽 <td>
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽<%= pageContext.getAttribute("msg") %>
聽 聽 聽 聽 聽 聽 聽 </td>
聽 聽 聽 聽 聽 聽 </tr>
聽 聽 聽 聽 聽 </html:messages>

<html:messages message="
true " id="msg" header="messages.header" footer="messages.footer">
聽 聽 聽 聽 聽 聽 <tr>
聽 聽 聽 聽 聽 聽 聽 <td>
聽 聽 聽 聽 聽 聽 聽 聽<%= pageContext.getAttribute("msg") %>
聽 聽 聽 聽 聽 聽 聽 </td>
聽 聽 聽 聽 聽 聽 </tr>
</html:messages>



feingto 2006-05-03 20:02 鍙戣〃璇勮
]]>
struts鍦║RI鍚庨潰浼犲弬鏁扮殑闂http://www.tkk7.com/feingto/archive/2006/05/03/44459.htmlfeingtofeingtoWed, 03 May 2006 12:02:00 GMThttp://www.tkk7.com/feingto/archive/2006/05/03/44459.htmlhttp://www.tkk7.com/feingto/comments/44459.htmlhttp://www.tkk7.com/feingto/archive/2006/05/03/44459.html#Feedback0http://www.tkk7.com/feingto/comments/commentRss/44459.htmlhttp://www.tkk7.com/feingto/services/trackbacks/44459.html鍦╯truts鏍囩<html:link>鐨刾age灞炴ф寚瀹氱殑URI鍚庨潰浼犻掑弬鏁板彲浠ユ湁鍑犵鏂瑰紡錛?
1.鑻ユ槑紜弬鏁板悕鍜屽弬鏁板煎垯鐩存帴鍦║RI鍚庤緭鍑猴紝
濡傦細<html:link page="/test.do?action=add">add</html:link>

2.瀵逛簬鍙傛暟鍊間笉紜畾鐨勶紝paramName鍜宲aramProperty鏉ヨ緭鍑猴紝鐢╬aramId灞炴ф寚瀹氬弬鏁板悕銆?br />瀵逛簬paramName鎸囧畾鐨勫璞″簲璇ュ瓨鍦ㄤ簬page銆乺equest銆乻ession銆乤pplication鍏朵腑涔嬩竴銆備竴鑸潵璇達紝鏄粠Action綾諱紶榪囨潵鐨勶紝浣滀負request鐨勫睘鎬т箣涓錛坮equst.setAttribute("name",object)錛夈?br />濡傛灉paramName鎸囧畾鐨勫璞℃槸action鐨凙ctionForm錛屽垯鏃犻渶浣跨敤request.setAttribute鏂規(guī)硶銆?br />渚嬶細<html:link page="/test.do" paramId="userid" paramName="uid">uname</html:link>
鑻ュ弬鏁板兼槸涓涓猙ean瀵硅薄鐨勫睘鎬у鹼紙姣斿ActionForm,鎴栬呴泦鍚堜腑瀛樻斁鐨勫璞★級鍒欙細
<html:link page="/test.do" paramId="userid" paramName="user" paramProperty="uid">uname</html:link>

3.鑻ヤ袱涓弬鏁幫紝涓涓‘瀹氫竴涓笉紜畾錛屽垯鏄互涓婁袱縐嶆柟娉曠殑緇撳悎錛屽嵆錛?br /><html:link page="/test.do?action=modify" paramId="userid" paramName="uid">modify</html:link>

4.瀵逛簬澶氫釜鍙傛暟鐨勯棶棰橈紝鍙互浣跨敤涓涓狧ashMap闆嗗悎瀵硅薄鏉ュ瓨鏀炬墍鏈夌殑鍙傛暟鍚嶅強瀵瑰簲鐨勫弬鏁板肩殑鏂瑰紡錛宲aramName灞炴у兼寚瀹氫負璇ashMap闆嗗悎瀵硅薄鍗沖彲銆?br />涓句緥錛?br /><%
//浠g爜鐞嗘兂鐨勪綅緗簲璇ユ槸鍦╝ction涓?br />//鍙互鍦╦sp欏甸潰嫻嬭瘯
聽 java.util.HashMap pms = new java.util.HashMap();
聽 pms.put("code", "001002");
聽 pms.put("name", "tester");
聽 pms.put("alias", new String[]{"matin","jack"});
聽 request.setAttribute("params", pms);
%>
<html:link action="/test.do" name="params" >test</html:link>
緙栬瘧鍚庣殑緇撴灉錛?lt;a href="/test.do?code=001002&name=tester&alias=matin&alias=jack">test</a>
榪欑鏂瑰紡铏界劧鍙互瑙e喅浼犲鍙傛暟鐨勯棶棰橈紝浣嗘槸瀹炵幇璧鋒潵涔熸瘮杈冮夯鐑︼紝鐗瑰埆鏄璁板綍闆嗕腑鐨勬暟鎹愭潯鍒楀嚭鐨勬椂鍊?/p>

5.閽堝鏈夌殑緗戝弸鍦?lt;html:link>鏍囩涓祵鍏ヤ嬌鐢╦sp鑴氭湰(scriptlet)鐨勯棶棰橈紝
渚嬪:
<html:link page="/test.do?code=<%=varible%>">add</html:link>錛岃繖縐嶅啓娉曟槸閿欒鐨勶紝鏄棤娉曠紪璇戠殑銆?br />鏈夌殑緗戝弸璁や負鍦╯truts鏍囩鍐呮槸涓嶅厑璁鎬嬌鐢╦sp鑴氭湰鐨勶紝榪欑璇存硶涔熶笉鍑嗙‘銆傚鏋滃墠闈㈢殑鍐欐硶鏀規(guī)垚:
<html:link page="<%="/test.do?code="+varible%>">add</html:link>錛屽氨鍙互琚墽琛岋紝浣嗘槸瑕佹敞鎰廢RL鐩稿璺緞鐨勯棶棰樸?/p>

铏界劧鍦╯truts鏍囩涓祵鍏sp鑴氭湰涓嶆槸鐪熸鎰忎箟涓婄殑struts搴旂敤錛屼絾鏄湁鏃跺湪濮旀洸姹傚叏鐨勬儏鍐典笅涔熷彧鑳藉姝や簡錛岄櫎闈炰嬌鐢ㄨ嚜瀹氫箟鏍囩銆傛瘮濡傚湪form琛ㄥ崟涓彲鑳介渶瑕佹牴鎹叿浣撴暟鎹鏌愪釜瀛楁鏄彧璇葷殑錛屽氨鍙互鐢ㄥ祵鍏sp鑴氭湰鏉ュ疄鐜幫細
<%
boolean rdonly=false;
if(2==2) rdonly=true;
%>
<html:text property="userid" readonly="<%=rdonly%>" />


6.鍙﹀涓縐嶆瘮杈冨彉鎬佺殑鏂規(guī)硶錛屾棦涓嶆槸鐪熸鎰忎箟涓婄殑struts錛屼篃涓嶇鍚坸ml瑙勮寖銆傞偅灝辨槸鍦?lt;a>鏍囩涓敤<bean:write>鏍囩杈撳嚭鍙傛暟鍊箋?br />濡傦細<a href="test.do?uid=<bean:write name="user" property="userid"/>&name=<bean:write name="user" property="username"/>">test</a>



feingto 2006-05-03 20:02 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 中文免费观看视频网站| 91亚洲性爱在线视频| 亚洲av无码国产综合专区 | 黄色网址免费在线观看| www国产亚洲精品久久久| 亚洲综合激情五月色一区| 暖暖在线日本免费中文| 美女被暴羞羞免费视频| 久久精品国产亚洲沈樵| 十九岁在线观看免费完整版电影| 亚洲日产2021三区| 亚洲不卡AV影片在线播放| 在线观看片免费人成视频播放| 亚洲国产精华液网站w| 一本色道久久综合亚洲精品| 99热在线观看免费| 亚洲精品久久无码| 久久91亚洲人成电影网站| 亚洲人成无码网站| 国产性生交xxxxx免费| 久久国产精品免费看| WWW国产亚洲精品久久麻豆| 亚洲精品成人a在线观看| 精品国产污污免费网站aⅴ| 一本无码人妻在中文字幕免费| 特a级免费高清黄色片| 亚洲视频一区二区三区| 国产亚洲精品免费视频播放| 精品国产精品久久一区免费式| 成全视频高清免费观看电视剧| 午夜亚洲国产理论片二级港台二级| 97久久精品亚洲中文字幕无码 | 亚洲毛片基地4455ww| 亚洲免费在线播放| 亚洲另类激情综合偷自拍图| 成年人网站在线免费观看| 99久久综合国产精品免费| 国产一区二区三区免费在线观看| 99精品视频在线观看免费专区| 成人免费777777| 国产成人AV免费观看|