锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产成人久久综合一,亚洲mv国产精品mv日本mv,亚洲精品无码MV在线观看http://www.tkk7.com/nikita/category/39788.htmlzh-cnThu, 09 Feb 2012 17:32:15 GMTThu, 09 Feb 2012 17:32:15 GMT60- 瑙e喅ServletUrlRenderer WARN璀﹀憡http://www.tkk7.com/nikita/archive/2012/02/09/369656.htmlpicture talkpicture talkThu, 09 Feb 2012 04:42:00 GMThttp://www.tkk7.com/nikita/archive/2012/02/09/369656.htmlhttp://www.tkk7.com/nikita/comments/369656.htmlhttp://www.tkk7.com/nikita/archive/2012/02/09/369656.html#Feedback1http://www.tkk7.com/nikita/comments/commentRss/369656.htmlhttp://www.tkk7.com/nikita/services/trackbacks/369656.html
]]> - Struts 2涓嶢JAX錛堢涓閮ㄥ垎錛?http://www.tkk7.com/nikita/archive/2011/08/07/355970.htmlpicture talkpicture talkSun, 07 Aug 2011 14:36:00 GMThttp://www.tkk7.com/nikita/archive/2011/08/07/355970.htmlhttp://www.tkk7.com/nikita/comments/355970.htmlhttp://www.tkk7.com/nikita/archive/2011/08/07/355970.html#Feedback0http://www.tkk7.com/nikita/comments/commentRss/355970.htmlhttp://www.tkk7.com/nikita/services/trackbacks/355970.htmlhttp://www.tkk7.com/max/archive/2007/06/12/123682.html

]]> - Struts 鐨凪VC鏋舵瀯鐨勫熀鏈師鐞?/title>http://www.tkk7.com/nikita/archive/2008/10/04/232275.htmlpicture talkpicture talkFri, 03 Oct 2008 16:07:00 GMThttp://www.tkk7.com/nikita/archive/2008/10/04/232275.htmlhttp://www.tkk7.com/nikita/comments/232275.htmlhttp://www.tkk7.com/nikita/archive/2008/10/04/232275.html#Feedback0http://www.tkk7.com/nikita/comments/commentRss/232275.htmlhttp://www.tkk7.com/nikita/services/trackbacks/232275.html
1. 瑙嗗浘 VIEW
聽聽聽HTML + Struts Tag lib璐熻矗欏甸潰鏍煎紡錛?姣斿瑕佽緭鍑轟竴涓姤琛紝鎶ヨ〃闇瑕佸垎鍑犲垪錛屾瘡鍒楁樉紺轟粈涔堥鑹層?br />聽聽聽
聽聽聽Form Bean 璐熻矗鍐呭銆?濡傛姤琛ㄦ瘡涓欏規暟鎹唴瀹廣?br />
2. 鎺у埗鍣?Controller)
聽聽聽涓昏鐢?ActionServlet + Action Bean 緇勬垚銆?br />
聽聽聽ActionServlet 鏄疭truts涓牳蹇冪殑閮ㄥ垎錛屽叾鍔熻兘濡備笅銆?br />
聽聽聽聽聽聽ActionServlet璐熻矗鎵鏈夐〉闈俊鎭敹闆嗗拰欏甸潰涔嬮棿鐨勮漿鎹€?br />聽聽聽聽聽聽緋葷粺閫氳繃web.xml鐨?<servlet>鏉ラ厤緗瓵ctionServlet
聽聽聽聽聽聽緋葷粺閫氳繃web.xml 鐨?lt;init-param>灝哠truts-config.xml 杞藉叆鍐呭瓨浠ュActionServlet璋冪敤
聽聽聽聽聽聽validation.xml浠?lt;plug-in>鏂規硶杞藉叆鍐呭瓨澶嘇ctionServlet璋冪敤銆?br />聽聽聽聽聽聽聽聽聽
聽聽聽ActionBean 鐨勬ц兘濡備笅錛?br />聽聽聽聽聽聽
聽聽聽聽聽聽ActionServlet閫氳繃Struts-config.xm 鐨勯厤緗潵璋冪敤鐩稿簲鐨凙ction Bean.
聽聽聽聽聽聽Action Bean 浠嶧orm Bean 鍙栧嚭鐩稿簲鐨勫箋?br />聽聽聽聽聽聽Action Bean 鎶婄浉搴旂殑鍊間粯緇橣orm Bean
聽聽聽聽聽聽Action Bean 璐熻矗璋冪敤鐩稿簲鐨凪odel,
聽聽聽聽聽聽Action Bean 璐熻矗灝嗛〉闈㈠悜鍓嶄紶閫掑埌鐩稿簲鐨勯〉闈€?br />
3. 妯″瀷 (Model)
聽聽聽聽聽聽妯″瀷Model 涓昏璐熻矗涓氬姟閫昏緫瀹炵幇錛屽寘鎷琖eb Service 銆丼ession Bean 鍜?Entity Bean. 浠庢暟鎹祦鐨勮搴︽潵鐪嬶紝榪欎竴榪囩▼涓昏鍖呮嫭浠ヤ笅涓や釜鏂歸潰錛?br />
聽聽聽聽聽聽聽 (1)灝嗗墠绔殑From Bean 鐨勬暟鎹紶鍒板悗绔紝榪涜鏁版嵁搴撶殑鎻掑叆錛屾洿鏂板拰鍒犻櫎銆?br />
聽聽聽聽聽聽聽聽(2)鏍規嵁鍓嶇鐨勮姹傦紝閫夋嫨鏁版嵁搴撴暟鎹紝灝嗘暟鎹紶鍒板墠绔殑Form Bean
----------------------------------------------------------------------------------------------------------------------------------------------
java.lang.Object
聽聽|
聽聽+--javax.servlet.GenericServlet
聽聽聽聽聽聽聽聽|
聽聽聽聽聽聽聽聽+--javax.servlet.http.HttpServlet
聽聽聽聽聽聽聽聽聽聽聽聽聽聽|
聽聽聽聽聽聽聽聽聽聽聽聽聽聽+--org.apache.struts.action.ActionServlet
Struts鎻愪緵浜嗕竴涓己鐪佺増鏈殑ActionServlet綾伙紝浣犲彲浠ョ戶鎵胯繖涓被錛岃鐩栧叾涓殑涓浜涙柟娉曟潵杈懼埌浣犵殑鐗規畩澶勭悊鐨勯渶瑕併侫ctionServlet緇ф壙涓巎avax.servlet.http.HttpServlet錛屾墍浠ュ湪鏈川涓婂畠鍜屼竴涓櫘閫氱殑servlet娌℃湁鍖哄埆錛屼綘瀹屽叏鍙互鎶婂畠褰撳仛涓涓猻ervlet鏉ョ湅寰咃紝鍙槸鍦ㄥ叾涓畬鎴愮殑鍔熻兘涓嶅悓緗簡銆侫ctionServlet涓昏瀹屾垚濡備笅鍔熻兘錛?br />
灝嗕竴涓潵鑷鎴風鐨刄RI鏄犲皠鍒頒竴涓浉搴旂殑Action綾?br />
-
濡傛灉鏄繖涓狝ction綾繪槸絎竴嬈¤璋冪敤錛岄偅涔堝疄渚嬪寲涓涓茍鏀懼叆緙撳瓨
-
濡傛灉鍦ㄩ厤緗枃浠?struts-config.xml)涓寚瀹氫簡鐩稿簲鐨凙ctionForm錛岄偅涔堜粠Request涓姄鍙栨暟鎹~鍏匜ormBean
-
璋冪敤榪欎釜Action綾葷殑perform()鏂規硶錛屼紶鍏ctionMapping鐨勪竴涓紩鐢紝瀵瑰簲鐨凙ctionForm銆佷互鍙婄敱瀹瑰櫒浼犵粰ActionServlet鐨凥ttpServletRequest銆丠ttpServletResponse瀵硅薄銆?/font>
紜渷鐗堟湰鐨凙ctionServlet浼氫粠閰嶇疆鏂囦歡web.xml涓鍙栧涓嬪垵濮嬪寲鍙傛暟錛?br />
-
application
搴旂敤浣跨敤鐨勮祫婧愬寘(resources聽bundle)鐨勫熀綾?br />
-
factory
鐢ㄤ簬鍒涘緩搴旂敤鐨凪essageResources瀵硅薄鐨凪essageResourcesFactory鐨勭被鍚嶃傜‘鐪佹槸org.apache.struts.util.PropertyMessageResourcesFactory銆?br />
-
config
Struts鐨勯厤緗枃浠訛紝紜渷鏄?WEB-INF/struts-config.xml銆傛敞鎰忚繖鍎挎槸涓庡簲鐢–ontext鍏寵仈鐨勭浉瀵硅礬寰勩?br />
-
content
瀹氫箟浜嗙‘鐪佺殑鍐呭綾誨瀷鍜岀紪鐮佹牸寮忥紝瀹冧細琚嚜鍔ㄥ湴琚緗埌姣忎釜response涓紝濡傛灉JSP/Servlet涓病鏈夋槑紜殑璁劇疆銆傜‘鐪佹槸text/html銆?br />
-
debug
璋冭瘯淇℃伅鐨勭駭鍒傞粯璁や負0錛屾瘮褰撳墠綰у埆楂樼殑璋冭瘯淇℃伅浼氳log鍒版棩蹇楁枃浠朵腑銆?br />
-
detail
涓巇ebug鐨勪綔鐢ㄧ被浼鹼紝鍙槸榪欎釜detail鏄痠nitMapping()鏃朵笓鐢ㄧ殑銆傝皟璇曚俊鎭細琚墦鍗板埌System.out錛岃屼笉鏄棩蹇楁枃浠躲?br />
-
formBean
ActionFormBean鐨勫疄鐜扮被錛岀‘鐪佷負org.apache.struts.action.ActionFormBean
-
forward
搴旂敤涓嬌鐢ㄧ殑ActionForward綾伙紝紜渷鏄痮rg.apache.struts.action.ActionForward銆?br />
-
locale
鎸囧畾浜嗙‘鐪佷嬌鐢ㄧ殑Locale瀵硅薄銆傝涓簍rue錛屽綋寰楀埌涓涓猻ession鏃訛紝浼氳嚜鍔ㄥ湪session涓瓨鍌ㄤ竴涓互Action.LOCALE_KEY鏍囩ず鐨凩ocale瀵硅薄錛屽鏋渟ession涓繕娌℃湁涓嶢ction.LOCALE_KEY緇戝畾鐨凩ocale瀵硅薄銆?br />
-
mapping
搴旂敤涓嬌鐢ㄧ殑ActionMapping綾伙紝紜渷鏄痮rg.apache.struts.action.ActionMapping銆?br />
-
multipartClass
鏂囦歡涓婁紶浣跨敤鐨凪utipartRequestHandler鐨勫疄鐜扮被銆傜‘鐪佷負org.apache.struts.upload.DiskMultipartRequestHandler
-
nocache
濡傛灉璁句負true錛岄偅涔圓ctionServlet浼氳嚜鍔ㄥ湪姣忎釜鍒板鎴風鐨勫搷搴斾腑娣誨姞nocache鐨凥TML澶達紝榪欐牱瀹㈡埛绔氨涓嶄細瀵瑰簲鐢ㄤ腑鐨勯〉闈㈣繘琛岀紦瀛樸傜‘鐪佷負false
-
null
濡傛灉璁劇疆涓簍rue錛岄偅涔堝簲鐢ㄥ湪寰楀埌涓涓湭瀹氫箟鐨刴essage璧勬簮鏃訛紝浼氳繑鍥瀗ull錛岃屼笉鏄繑鍥炰竴涓敊璇俊鎭傜‘鐪佹槸true銆?br />
-
maxFileSize
鏂囦歡涓婁紶鐨勫ぇ灝忎笂闄愶紝紜渷涓?50M
-
bufferSize
鏂囦歡涓婁紶鏃剁殑緙撳啿鍖虹殑澶у皬錛岀‘鐪佷負4M
-
tempDir
璁劇疆鐢ㄤ簬涓婁紶鏃剁殑涓存椂鐩綍銆傚伐浣滅洰褰曚細浣滀負涓涓猄ervlet鐜錛圕ontext錛夌殑灞炴ф彁渚涖?br />
-
validate
Are聽we聽using聽the聽new聽configuration聽file聽format?紜渷涓簍rue銆?br />
-
validating
鍦ㄨВ鏋愰厤緗甔ML鏂囦歡鏄槸鍚﹁繘琛屾湁鏁堟х殑楠岃瘉銆傜‘鐪佷負true
ActionServlet涓簲鐢ㄤ簡鍛戒護璁捐妯″紡銆?br />
涓涓猄ervlet鍦ㄧ敱瀹瑰櫒鐢熸垚鏃訛紝棣栧厛浼氳皟鐢╥nit()鏂規硶榪涜鍒濆鍖栵紝鍦ㄦ帴鍒頒竴涓狧TTP璇鋒眰鏃訛紝璋冪敤鐩稿簲鐨勬柟娉曡繘琛屽鐞嗭紱姣斿GET璇鋒眰璋冪敤doGet()鏂規硶錛孭OST璇鋒眰璋冪敤doPost()鏂規硶銆傛墍浠ラ鍏堢湅鐪婣ctionServlet鐨刬nit()鏂規硶錛屼綘灝變細寰堟竻妤氫負浠涔圓ctionServlet鍙互瀹屾垚榪欎簺鍔熻兘浜嗐?br />
init()
鍦ㄥ畠鐨刬nit()鏂規硶涓紝ActionServlet渚濇璋冪敤濡備笅protected鐨勬柟娉曞畬鎴愬垵濮嬪寲錛?br />
-
initActions()聽錛嵚犅犅犅犅犲ぇ瀹跺彲鑳借繕鏇炬湁榪欎釜鐤戦棶錛歋truts涓轟粈涔堝彲浠ユ壘鍒頒竴涓姹俇RI瀵瑰簲鐨刟ction綾誨憿錛熺瓟妗堝氨鍦ㄨ繖鍎匡紝ActionServlet鏈変竴涓猘ctions灞炴э紝綾誨瀷涓簅rg.apache.struts.util.FastHashMap錛岀敤浜庡瓨鍌ㄤ互綾葷殑鍏ㄥ悕涓簁ey鐨勫凡瀹炰緥鍖栫殑Action綾匯傚湪init()鏃墮鍏堣皟鐢ㄧ殑灝辨槸initActions()鏂規硶錛屽湪榪欎釜鏂規硶涓彧鏄畝鍗曠殑娓呴櫎map涓殑鎵鏈夌殑鍚嶅煎錛?br />
-
-
聽聽聽聽聽聽聽聽synchronized聽(actions)聽{
-
聽聽聽聽聽聽聽聽聽聽聽聽actions.setFast(false);
-
聽聽聽聽聽聽聽聽聽聽聽聽actions.clear();
-
聽聽聽聽聽聽聽聽聽聽聽聽actions.setFast(true);
-
聽聽聽聽聽聽聽聽}
棣栧厛鎶奱ctions璁句負slow妯″紡錛岃繖鏃跺FastHashMap鐨勮闂槸綰跨▼鍚屾鐨勶紝鐒跺悗娓呴櫎actions涓殑鎵鏈夌殑宸插瓨鍦ㄧ殑鍚?鍊煎錛屾渶鍚庡啀鎶奱ctions鐨勬ā寮忚涓篺ast銆傜敱浜嶧astHashMap鏄痵truts鍦╦ava.util.HashMap鐨勫熀紜涓婄殑涓涓墿灞曠被錛屾槸涓轟簡閫傚簲澶氱嚎紼嬨佸茍涓斿HashMap鐨勮闂ぇ閮ㄥ垎鏄彧璇葷殑鐗規畩鐜鐨勯渶瑕併傚ぇ瀹剁煡閬搄ava.util.HashMap鏄潪綰跨▼瀹夊叏鐨勶紝鎵浠ashMap涓鑸傜敤浜庡崟綰跨▼鐜涓嬨俹rg.apache.struts.FastHashMap灝辨槸緇ф壙浜巎ava.util.HashMap錛屽湪鍏朵腑娣誨姞澶氱嚎紼嬬殑鏀寔浜х敓鐨勩傚湪fast妯″紡涓嬬殑宸ヤ綔鏂瑰紡鏄繖鏍風殑錛氳鍙栨槸闈炵嚎紼嬪悓姝ョ殑錛涘啓鍏ユ椂棣栧厛鍏嬮殕褰撳墠map錛岀劧鍚庡湪榪欎釜鍏嬮殕涓婂仛鍐欏叆鎿嶅仛錛屽畬鎴愬悗鐢ㄨ繖涓慨鏀瑰悗鐨勫厠闅嗙増鏈浛鎹㈠師鏉ョ殑map銆傞偅涔堝湪浠涔堟椂鍊欎細鎶夾ctions綾繪坊鍔犲埌榪欎釜map涓憿錛熸垜浠凡緇忔彁鍒頒簡struts鏄姩鎬佺殑鐢熸垚Action綾葷殑瀹炰緥鐨勶紝鍦ㄦ瘡嬈ctionServlet鎺ユ敹鍒頒竴涓狦ET鎴朠OST鐨凥TTP璇鋒眰鏃訛紝浼氬湪榪欎釜map涓煡鎵懼搴旂殑Action綾葷殑瀹炰緥錛屽鏋滀笉瀛樺湪錛岄偅涔堝氨瀹炰緥鍖栦竴涓紝騫舵斁鍏ap涓傚彲瑙佽繖涓猘ctions灞炴ц搗鍒頒簡瀵笰ction綾誨疄渚嬬殑緙撳瓨鐨勪綔鐢ㄣ?br />
-
initInternal()聽錛嵚犅犅犅犅犲垵濮嬪寲ActionServlet鍐呴儴浣跨敤鐨勮祫婧愬寘MessageResources錛屼嬌鐢∕essageResources.getMessageResources(internalName)寰楀埌聽聽聽聽internalName涓?org.apache.struts.action.ActionResources"瀵瑰簲鐨凙ctionResources.properties鏂囦歡銆傝繖涓祫婧愬寘涓昏鐢ㄤ簬ActionServlet澶勭悊榪囩▼涓殑鐢ㄥ埌鐨勬彁紺轟俊鎭紝榪欏効涓嶅睍寮璁ㄨ銆?br />
-
initDebug()聽錛嵚犅犅犅犅犱粠web.xml涓鍙栨湰搴旂敤鐨刣ebug綰у埆鍙傛暟getServletConfig().getInitParameter("debug")錛岀劧鍚庤祴緇檇ebug灞炴с?br />
-
initApplication()錛嵚犅犅犅犲垵濮嬪寲搴旂敤璧勬簮鍖咃紝騫舵斁緗叆ServletContext涓?br />
-
-
聽聽聽聽聽聽聽聽String聽factory聽=getServletConfig().getInitParameter(鈥渇actory鈥?;聽聽聽聽
-
聽聽聽聽聽聽聽聽String聽oldFacory聽=聽MessageResourcesFactory.getFactoryClass();
-
聽聽聽聽聽聽聽聽if聽(factory聽!=null)
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽MessageResourcesFactory.setFactoryClass(factory);
-
聽聽聽聽聽聽聽聽String聽value聽=聽getServletConfig().getInitParameter("application");
-
聽聽聽聽聽聽聽聽MessageResourcesFactory聽factoryObject聽=
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽MessageResourcesFactory.createFactory();
-
聽聽聽聽聽聽聽聽application聽=聽factoryObject.createResources(value);
-
聽聽聽聽聽聽聽聽MessageResourcesFactory.setFactory(oldFactory);聽
-
聽聽聽聽聽聽聽聽getServletContext().setAttribute(Action.MESSAGES_KEY,聽application);
璇存槑錛氭枃涓紩鐢ㄧ殑浠g爜鐗囨柇鍙兘浼氱渷鐣ヤ簡涓浜涗緥澶栨鏌ョ瓑闈炰富綰跨殑鍐呭錛屾暚璇鋒敞鎰忋?br />
棣栧厛浠庨厤緗枃浠朵腑璇誨彇factory鍙傛暟錛屽鏋滆繖涓弬鏁頒笉涓虹┖錛岄偅涔堝氨鍦∕essageResourcesFactory涓嬌鐢ㄨ繖涓寚瀹氱殑Factory綾伙紱鍚﹀垯錛屼嬌鐢ㄩ粯璁ょ殑宸ュ巶綾籵rg.apche.struts.util.PropertyMessageResourceFactory銆傜劧鍚庤皟鐢∕essageResourcesFactory鐨勯潤鎬乧reateFactory()鏂規硶錛岀敓鎴愪竴涓叿浣撶殑MessageResourceFactory瀵硅薄錛堟敞鎰忥細MessageResourcesFactory鏄娊璞$被錛夈傝繖鏍峰氨鍙互璋冪敤榪欎釜鍏蜂綋鐨凪essageResourceFactory鐨刢reateResource()鏂規硶寰楀埌閰嶇疆鏂囦歡(web.xml)涓畾涔夌殑璧勬簮鏂囦歡浜嗐?br />涓婇潰鐨刟pplication瀵硅薄綾誨瀷涓篗essageResources銆傚湪web.xml涓湪閰嶇疆ActionServlet鏃跺彲浠ユ寚瀹氫竴涓壒瀹氱殑宸ュ巶綾匯備笉鑳界洿鎺essageResourcesFactory鐨刢reateResources()鏂規硶錛屽洜涓鴻繖涓柟娉曟槸abstract鐨勩傚垱寤篺actoryObject鐨勮繃紼嬪涓嬶細
-
聽聽聽聽
-
聽聽聽聽聽聽聽聽MessageResourceFactory聽factoryObject=
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽MessageResourcesFactory.createFactory();
-
聽聽聽聽聽聽聽聽application聽=聽factoryObject.createResources(value);
<li>initMapping()聽錛嵚犅犅犅犱負搴旂敤鍒濆鍖杕apping淇℃伅ActionServlet鏈変竴涓猵rotected鐨勫睘鎬э細mapping錛屽皝瑁呬簡涓涓狝ctionMapping鐨勫璞¢泦鍚堬紝浠ヤ究浜庣鐞嗐佹煡鎵続ctionMapping銆俶appings鏄痮rg.apache.struts.action.ActionMappings綾葷殑瀹炰緥銆備富瑕佹湁涓や釜鏂規硶錛歛ddMapping(ActionMapping聽mapping)鍜宖indMapping(String聽path)銆侫ctionMapping涔熸槸浣跨敤涓婇潰鎻愬埌鐨刼rg.apache.struts.util.FastHashMap綾繪潵瀛樺偍鎵鏈夌殑ActionMapping瀵硅薄銆?br />
-
-
聽聽聽聽聽聽聽聽mappings.setServlet(this);
-
聽聽聽聽聽聽聽聽鈥︹?
-
聽聽聽聽聽聽聽聽//聽Initialize聽the聽name聽of聽our聽ActionFormBean聽implementation聽class
-
聽聽聽聽聽聽聽聽value聽=聽getServletConfig().getInitParameter("formBean");
-
聽聽聽聽聽聽聽聽if聽(value聽!=聽null)
-
聽聽聽聽聽聽聽聽聽聽聽聽formBeanClass聽=聽value;
-
聽聽聽聽
-
聽聽聽聽聽聽聽聽//聽Initialize聽the聽name聽of聽our聽ActionForward聽implementation聽class
-
聽聽聽聽聽聽聽聽value聽=聽getServletConfig().getInitParameter("forward");
-
聽聽聽聽聽聽聽聽if聽(value聽!=聽null)
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽forwardClass聽=聽value;
-
-
聽聽聽聽聽聽聽聽//聽Initialize聽the聽name聽of聽our聽ActionMapping聽implementation聽class
-
聽聽聽聽聽聽聽聽value聽=聽getServletConfig().getInitParameter("mapping");
-
聽聽聽聽聽聽聽聽if聽(value聽!=聽null)
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mappingClass聽=聽value;
鍦╥nitMapping()涓紝棣栧厛閾炬帴mappings瀵硅薄鍒版湰servlet瀹炰緥銆傚叾瀹炶繖鍙ヨ瘽鐨勪綔鐢ㄥ緢綆鍗曪紝鍦ˋctionMappings涓細鏈変竴涓狝ctionServlet綾誨瀷鐨勫睘鎬э紝榪欎釜灞炴у氨鐣屽畾浜嗚繖涓狝ctionMappings瀵硅薄鎵灞炵殑ActionServlet銆係truts鐨勫疄鐜版瘮杈冪伒媧伙紝鍏朵腑鐨凙ctionFormBean銆丄ctionForward銆丄ctionMapping綾諱綘瀹屽叏鍙互浣跨敤鑷繁瀹炵幇鐨勫瓙綾伙紝鏉ュ畾鍒禨truts鐨勫伐浣滄柟寮忋備笂闈㈢殑浠g爜灝變粠閰嶇疆鏂囦歡錛坵eb.xml錛変腑璇誨彇formBean銆乫orward銆乵apping鍙傛暟錛岃繖浜涘弬鏁板氨鏄綘瀹氬埗鐨凙ctionFormBean銆丄ctionForward銆丄ctionMapping綾誨悕銆?br />
-
-
聽聽聽聽聽聽聽聽//聽Initialize聽the聽context-relative聽path聽to聽our聽configuration聽resources
-
聽聽聽聽聽聽聽聽value聽=聽getServletConfig().getInitParameter("config");
-
聽聽聽聽聽聽聽聽if聽(value聽!=聽null)
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽config聽=聽value;
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽//聽Acquire聽an聽input聽stream聽to聽our聽configuration聽resource
-
聽聽聽聽聽聽聽聽InputStream聽input聽=聽getServletContext().getResourceAsStream(config);
-
聽聽聽聽聽聽聽聽Digester聽digester聽=聽null;
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽digester聽=聽initDigester(detail);
-
聽聽聽聽聽聽聽聽try聽{
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽formBeans.setFast(false);
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽forwards.setFast(false);
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mappings.setFast(false);
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽digester.parse(input);
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mappings.setFast(true);
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽forwards.setFast(true);
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽formBeans.setFast(true);
-
聽聽聽聽聽聽聽聽}聽catch聽(SAXException聽e)聽{
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽throw聽new聽ServletException
-
聽聽聽聽聽聽聽聽(internal.getMessage("configParse",聽config),聽e);
-
聽聽聽聽聽聽聽聽}聽finally聽{
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽input.close();
-
聽聽聽聽聽聽聽聽}
浠巜eb.xml璇誨彇Struts鐨勯厤緗枃浠剁殑浣嶇疆銆備嬌鐢╫rg.apache.struts.digester.Digester瑙f瀽config鍙傛暟鏍囩ず鐨勯厤緗枃浠訛紝閫氬父涓衡?WEB-INF/struts-config.xml鈥濓紝瑙f瀽鍑烘墍鏈夌殑data-source銆乫orm-bean銆乤ction-mapping銆乫orward銆備粠涓婇潰鐨勭▼搴忕墖鏂湅鍒幫紝Digester浠呬粎璋冪敤浜嗕竴涓猵arse()鏂規硶錛岄偅涔堬紝Digester鏄庢牱鎶婅В鏋恠truts-config.xml鏂囦歡騫舵妸瑙f瀽鐨勭粨鏋渇orm-bean絳変俊鎭瓨鍌ㄥ埌灞炴у彉閲廸ormBeans絳変腑鐨勫憿錛熶綘鍙互娉ㄦ剰鍒板湪璋冪敤digester.parse(InputStream)涔嬪墠錛岄鍏堣皟鐢ㄤ簡initDigester()鏂規硶錛?br />
-
-
聽聽聽聽聽聽聽聽Digester聽digester聽=聽new聽Digester();
-
聽聽聽聽聽聽聽聽digester.push(this);
-
聽聽聽聽聽聽聽聽digester.addObjectCreate("struts-config/action-mappings/action",
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mappingClass,聽"className");
-
聽聽聽聽聽聽聽聽digester.addSetProperties("struts-config/action-mappings/action");
-
聽聽聽聽聽聽聽聽digester.addSetNext("struts-config/action-mappings/action",
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"addMapping",
-
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽"org.apache.struts.action.ActionMapping");
-
-
聽聽聽聽聽聽聽聽digester.addSetProperty
-
聽聽聽聽聽聽聽聽聽聽聽聽("struts-config/action-mappings/action/set-property",
-
聽聽聽聽聽聽聽聽聽聽聽聽聽"property",聽"value");
鍦ㄨ繖涓柟娉曚腑棣栧厛鐢熸垚涓涓狣igester瀵硅薄錛岀劧鍚庤緗В鏋愮殑瑙勫垯鍜屽洖璋冿紝濡傛灉浣犲XML銆丼AX涓嶆槸寰堢啛錛岃繖鍎夸笉蹇呯籂緙犲お娣便傝娉ㄦ剰鐨勬槸addSetNext()鏂規硶錛岃緗簡姣忎竴涓瑙f瀽鍏冪礌鐨凷et聽Next鍥炶皟鏂規硶錛岃岃繖涓柟娉曞氨鏄敱digester瑙f瀽鍣ㄧ殑鐖舵彁渚涚殑銆備笂闈㈢殑鐗囨柇涓殑鈥渁ddMapping鈥濆氨鏄疉ctionServlet鏈韓瀹氫箟鐨勪竴涓柟娉曪紝灝嗙敱Digester鍥炶皟銆侱igester灝辨槸綾嶆鎶婅В鏋愬嚭鐨勬瘡涓涓狥ormBean銆丄ctionForward銆丄ctionMapping絳夊瓨鍌ㄥ埌灞炴у彉閲廸ormBeans銆乫orwards銆乵appings絳変腑鐨勩?br />
-
initUpload()聽錛嵚犅犅犅犲垵濮嬪寲鏈夊叧Upload鐨勪竴浜涘弬鏁幫紝姣斿錛歜ufferSize銆乼empDir銆?br />
-
initDataSource()聽錛嶅彇鍑哄湪initMapping()涓粠閰嶇疆鏂囦歡涓鍙栫殑姣忎竴涓狣ataSource錛岃緗甃ogWriter錛屽鏋滀負GenericDataSource鐨勫疄渚嬶紝鍒欐墦寮鏁版嵁婧愩傜劧鍚庯紝鎶婃瘡涓猟ataSource鏀懼叆Context涓?br />dataSource.setLogWriter(scw)錛?br />((GenericDataSource)dataSource).open();
getServletContext().setAttribute(key,dataSource);
-
initOther()聽錛嵚犅犅犅犅犅犅犅犺緗叾瀹冨皻鏈垵濮嬪寲鐨勭殑鍙傛暟錛坈ontent銆乴ocale銆乶ocache錛夛紝騫跺彂甯僨ormBeans銆乫orwards銆乵appings鍒癈ontext錛?br />getServletContext().setAttribute(Action.FORM_BEANS_KEY,聽formBeans);
getServletContext().setAttribute(Action.FORWARDS_KEY,聽forwards);
getServletContext().setAttribute(Action.MAPPINGS_KEY,聽mappings);
-
initServlet()聽錛嵚犅犅犅犲垵濮嬪寲Controller聽Servlet鐨凷ervlet聽Mapping銆傝繖鍎夸篃浣跨敤浜咲igester宸ュ叿錛屾壂鎻弚eb.xml鎵鏈夌殑<web-app/servlet-mapping>錛屽鎵緎ervlet-name涓庡綋鍓峉ervlet鐩稿悓鐨刴apping錛岀疆鍏ontext銆備唬鐮佸涓嬶紱
-
-
聽聽聽聽聽聽聽聽Digester聽digester聽=聽new聽Digester();
-
聽聽聽聽聽聽聽聽digester.push(this);
-
聽聽聽聽聽聽聽聽digester.setDebug(debug);
-
聽聽聽聽聽聽聽聽digester.setValidating(validating);
-
聽聽聽聽聽聽聽聽digester.addCallMethod(鈥渨eb-appservlet-mapping鈥?鈥渁ddServletMapping鈥?聽2);
-
聽聽聽聽聽聽聽聽digester.addCallParm(鈥渨eb-appservlet-mappingservlet-name鈥?聽0);
-
聽聽聽聽聽聽聽聽digester.addCallParm(鈥渨eb-appservlet-mappingurl-pattern鈥?聽1);
-
聽聽聽聽聽聽聽聽InputStream聽is聽=聽getServletContext().getResourceAsStream(鈥?WEB-INFweb.xml鈥?;
-
聽聽聽聽聽聽聽聽digester.parse(is);聽
-
聽聽聽聽聽聽聽聽getServletContext().setAttribute(Action.SERVLET_KEY,servletMapping);

]]>
主站蜘蛛池模板:
无码精品一区二区三区免费视频
|
精品视频在线免费观看|
91在线视频免费播放|
国产亚洲3p无码一区二区|
亚洲码欧美码一区二区三区|
国产成人AV片无码免费|
亚洲熟女少妇一区二区|
特级毛片在线大全免费播放|
亚洲免费网站观看视频|
曰韩无码AV片免费播放不卡|
久久99亚洲网美利坚合众国|
中文字幕乱理片免费完整的|
亚洲Av无码乱码在线znlu|
亚洲国产无线乱码在线观看|
四虎成人免费影院网址|
亚洲色欲色欲综合网站|
精品国产污污免费网站|
色窝窝亚洲AV网在线观看|
午夜神器成在线人成在线人免费|
中文字幕免费观看全部电影|
欧洲 亚洲 国产图片综合|
免费99精品国产自在现线|
亚洲无吗在线视频|
97人伦色伦成人免费视频|
亚洲av永久无码|
亚洲国产婷婷香蕉久久久久久|
九九免费久久这里有精品23|
国产亚洲av片在线观看18女人|
国产福利免费视频
|
日本在线免费观看|
日韩在线视频线视频免费网站|
亚洲区视频在线观看|
色窝窝免费一区二区三区|
igao激情在线视频免费|
亚洲欧美日韩中文字幕在线一区|
亚洲高清在线观看|
妻子5免费完整高清电视|
久久综合九色综合97免费下载|
成年大片免费高清在线看黄|
亚洲日韩国产二区无码|
国产成人精品亚洲日本在线|