锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品高清国产麻豆专区,亚洲成年人电影在线观看,亚洲色少妇熟女11phttp://m.tkk7.com/compcxi/category/27243.htmlzh-cnSat, 10 Nov 2007 09:36:03 GMTSat, 10 Nov 2007 09:36:03 GMT60娣卞叆Struts 1.1http://m.tkk7.com/compcxi/articles/159589.html浠f灄浠f灄Sat, 10 Nov 2007 09:35:00 GMThttp://m.tkk7.com/compcxi/articles/159589.htmlhttp://m.tkk7.com/compcxi/comments/159589.htmlhttp://m.tkk7.com/compcxi/articles/159589.html#Feedback0http://m.tkk7.com/compcxi/comments/commentRss/159589.htmlhttp://m.tkk7.com/compcxi/services/trackbacks/159589.html浣滀負鍩轟簬MVC妯″紡鐨刉eb搴旂敤鏈緇忓吀妗嗘灦錛孲truts宸茬粡姝e紡鎺ㄥ嚭浜?.1鐗堟湰錛岃鐗堟湰鍦ㄤ互寰鐗堟湰鐨勫熀紜涓婏紝鎻愪緵浜嗚澶氭縺鍔ㄤ漢蹇冪殑鏂板姛鑳姐傛湰鏂囧氨灝嗗甫浣犺蛋榪汼truts 1.1鍘繪繁鍏ュ湴浜嗚В榪欎簺鍔熻兘銆?

璇存槑錛?/strong>甯屾湜鏈枃鐨勮鑰呰兘鏈変竴瀹氱殑Struts浣跨敤鍩虹銆?/p>

Model 2

Struts鏄熀浜嶮odel 2涔嬩笂鐨勶紝鑰孧odel 2鏄粡鍏哥殑MVC錛堟ā鍨嬶紞瑙嗗浘錛嶆帶鍒跺櫒錛夋ā鍨嬬殑Web搴旂敤鍙樹綋錛岃繖涓敼鍙樹富瑕佹槸鐢變簬緗戠粶搴旂敤鐨勭壒鎬?-HTTP鍗忚鐨勬棤鐘舵佹у紩璧風殑銆侻odel 2鐨勭洰鐨勫拰MVC涓鏍鳳紝涔熸槸鍒╃敤鎺у埗鍣ㄦ潵鍒嗙妯″瀷鍜岃鍥撅紝杈懼埌涓縐嶅眰闂存澗鏁h﹀悎鐨勬晥鏋滐紝鎻愰珮緋葷粺鐏墊椿鎬с佸鐢ㄦу拰鍙淮鎶ゆс傚湪澶氭暟鎯呭喌涓嬶紝浣犲彲浠ュ皢Model 2涓嶮VC絳夊悓璧鋒潵銆?/p>

涓嬪浘琛ㄧず涓涓熀浜嶫ava鎶鏈殑鍏稿瀷緗戠粶搴旂敤錛屼粠涓彲浠ョ湅鍑篗odel 2涓殑鍚勪釜閮ㄥ垎鏄浣曞搴斾簬Java涓悇縐嶇幇鏈夋妧鏈殑銆?/p>


鍦ㄥ埄鐢∕odel 2涔嬪墠錛屾垜浠槸鎶婃墍鏈夌殑琛ㄧず閫昏緫鍜屼笟鍔¢昏緫閮介泦涓湪涓璧鳳紙姣斿澶ф潅鐑╀技鐨凧SP錛夛紝鏈夋椂涔熺О榪欑搴旂敤妯″紡涓篗odel 1錛孧odel 1鐨勪富瑕佺己鐐瑰氨鏄揣鑰﹀悎錛屽鐢ㄦу樊浠ュ強緇存姢鎴愭湰楂樸?/p>

Struts 1.1 鍜孧odel 2

鏃㈢劧Struts 1.1鏄熀浜嶮odel 2涔嬩笂錛岄偅瀹冪殑搴曞眰鏈哄埗涔熷氨鏄疢VC錛屼笅闈㈡槸Struts 1.1涓殑MVC瀹炵幇紺烘剰鍥撅細


鍥捐В璇存槑錛氬叾涓笉鍚岄鑹蹭唬琛∕VC鐨勪笉鍚岄儴鍒嗭細綰㈣壊錛堟帶鍒跺櫒錛夈佺傳鑹詫紙妯″瀷錛夊拰緇胯壊錛堣鍥撅級

棣栧厛錛屾帶鍒跺櫒錛圓ctionServlet錛夎繘琛屽垵濮嬪寲宸ヤ綔錛岃鍙栭厤緗枃浠訛紙struts-config.xml錛夛紝涓轟笉鍚岀殑Struts妯″潡鍒濆鍖栫浉搴旂殑ModuleConfig瀵硅薄銆傛瘮濡傞厤緗枃浠朵腑鐨凙ction鏄犲皠瀹氫箟閮戒繚瀛樺湪ActionConfig闆嗗悎涓傜浉搴斿湴鏈塁ontrolConfig闆嗗悎銆丗ormBeanConfig闆嗗悎銆丗orwardConfig闆嗗悎鍜孧essageResourcesConfig闆嗗悎絳夈?/p>

鎻愮ず錛?/strong>妯″潡鏄湪Struts 1.1涓柊鎻愬嚭鐨勬蹇碉紝鍦ㄧ◢鍚庣殑鍐呭涓垜浠皢璇︾粏浠嬬粛錛屼綘鐜板湪鍙互綆鍗曞湴鎶婃ā鍧楃湅浣滄槸涓涓瓙緋葷粺錛屽畠浠叡鍚岀粍鎴愭暣涓簲鐢紝鍚屾椂鍙堝悇鑷嫭绔嬨係truts 1.1涓墍鏈夌殑澶勭悊閮芥槸鍦ㄧ壒瀹氭ā鍧楃幆澧冧腑榪涜鐨勩傛ā鍧楃殑鎻愬嚭涓昏鏄負浜嗚В鍐砈truts 1.0涓崟閰嶇疆鏂囦歡鐨勯棶棰樸?/em>

鎺у埗鍣ㄦ帴鏀禜TTP璇鋒眰錛屽茍浠嶢ctionConfig涓壘鍑哄搴斾簬璇ヨ姹傜殑Action瀛愮被錛屽鏋滄病鏈夊搴旂殑Action錛屾帶鍒跺櫒鐩存帴灝嗚姹傝漿鍙戠粰JSP鎴栬呴潤鎬侀〉闈€傚惁鍒欐帶鍒跺櫒灝嗚姹傚垎鍙戣嚦鍏蜂綋Action綾昏繘琛屽鐞嗐?/p>

鍦ㄦ帶鍒跺櫒璋冪敤鍏蜂綋Action鐨別xecute鏂規硶涔嬪墠錛孉ctionForm瀵硅薄灝嗗埄鐢℉TTP璇鋒眰涓殑鍙傛暟鏉ュ~鍏呰嚜宸憋紙鍙夋楠わ紝闇瑕佸湪閰嶇疆鏂囦歡涓寚瀹氾級銆傚叿浣撶殑ActionForm瀵硅薄搴旇鏄疉ctionForm鐨勫瓙綾誨璞★紝瀹冨叾瀹炲氨鏄竴涓狫avaBean銆傛澶栵紝榪樺彲浠ュ湪ActionForm綾諱腑璋冪敤validate鏂規硶鏉ユ鏌ヨ姹傚弬鏁扮殑鍚堟硶鎬э紝騫朵笖鍙互榪斿洖涓涓寘鍚墍鏈夐敊璇俊鎭殑ActionErrors瀵硅薄銆傚鏋滄墽琛屾垚鍔燂紝ActionForm鑷姩灝嗚繖浜涘弬鏁頒俊鎭互JavaBean錛堜竴鑸О涔嬩負form bean錛夌殑鏂瑰紡淇濆瓨鍦⊿ervlet Context涓紝榪欐牱瀹冧滑灝卞彲浠ヨ鍏跺畠Action瀵硅薄鎴栬匤SP璋冪敤銆?/p>

Struts灝嗚繖浜汚ctionForm鐨勯厤緗俊鎭兘鏀懼湪FormBeanConfig闆嗗悎涓紝閫氳繃瀹冧滑Struts鑳藉鐭ラ亾閽堝鏌愪釜瀹㈡埛璇鋒眰鏄惁闇瑕佸垱寤虹浉搴旂殑ActionForm瀹炰緥銆?/p>

Action寰堢畝鍗曪紝涓鑸彧鍖呭惈涓涓猠xecute鏂規硶錛屽畠璐熻矗鎵ц鐩稿簲鐨勪笟鍔¢昏緫錛屽鏋滈渶瑕侊紝瀹冧篃榪涜鐩稿簲鐨勬暟鎹鏌ャ傛墽琛屽畬鎴愪箣鍚庯紝榪斿洖涓涓狝ctionForward瀵硅薄錛屾帶鍒跺櫒閫氳繃璇ctionForward瀵硅薄鏉ヨ繘琛岃漿鍙戝伐浣溿傛垜浠富寮犲皢鑾峰彇鏁版嵁鍜屾墽琛屼笟鍔¢昏緫鐨勫姛鑳芥斁鍒板叿浣撶殑JavaBean褰撲腑錛岃孉ction鍙礋璐e畬鎴愪笌鎺у埗鏈夊叧鐨勫姛鑳姐傞伒寰鍘熷垯錛屾墍浠ュ湪涓婂浘涓垜灝咥ction瀵硅薄褰掍負鎺у埗鍣ㄩ儴鍒嗐?/p>

鎻愮ず錛?/strong>鍏跺疄鍦⊿truts 1.1涓紝ActionMapping鐨勪綔鐢ㄥ畬鍏ㄥ彲浠ョ敱ActionConfig鏉ユ浛浠o紝鍙笉榪囩敱浜庡畠鏄叕鍏盇PI鐨勪竴閮ㄥ垎浠ュ強鍏煎鎬х殑闂寰椾互淇濈暀銆侫ctionMapping閫氳繃緇ф壙ActionConfig鏉ヨ幏寰椾笌鍏朵竴鑷寸殑鍔熻兘錛屼綘鍙互絳夊悓鍦扮湅寰呭畠浠傚悓鐞嗭紝鍏跺畠渚嬪ActionForward涓嶧orwardConfig鐨勫叧緋諱篃鏄姝ゃ?/em>

涓嬪浘緇欏嚭浜嗗鎴風浠庡彂鍑鴻姹傚埌鑾峰緱鍝嶅簲鏁翠釜榪囩▼鐨勫浘瑙h鏄庛?/p>


涓嬮潰鎴戜滑灝辨潵璇︾粏鍦拌璁轟竴涓嬪叾涓殑姣忎釜閮ㄥ垎錛屽湪榪欎箣鍓嶏紝鍏堟潵浜嗚В涓涓嬫ā鍧楃殑姒傚康銆?/p>

妯″潡

鎴戜滑鐭ラ亾錛屽湪Struts 1.0涓紝鎴戜滑鍙兘鍦╳eb.xml涓負ActionServlet鎸囧畾涓涓厤緗枃浠訛紝榪欏浜庢垜浠繖浜涚綉涓婄殑鏁欏渚嬪瓙鏉ヨ褰撶劧娌′粈涔堥棶棰橈紝浣嗘槸鍦ㄥ疄闄呯殑搴旂敤寮鍙戣繃紼嬩腑錛屽彲鑳戒細鏈変簺楹葷儲銆傚洜涓鴻澶氬紑鍙戜漢鍛橀兘鍙兘鍚屾椂闇瑕佷慨鏀歸厤緗枃浠訛紝浣嗘槸閰嶇疆鏂囦歡鍙兘鍚屾椂琚竴涓漢淇敼錛岃繖鏍瘋偗瀹氫細閫犳垚涓瀹氱▼搴︿笂鐨勮祫婧愪簤澶猴紝鍔垮繀浼氬獎鍝嶅紑鍙戞晥鐜囧拰寮曡搗寮鍙戜漢鍛樼殑鎶辨ㄣ?/p>

鍦⊿truts 1.1涓紝涓轟簡瑙e喅榪欎釜騫惰寮鍙戠殑闂錛屾彁鍑轟簡涓ょ瑙e喅鏂規錛?

  1. 澶氫釜閰嶇疆鏂囦歡鐨勬敮鎸?
  2. 妯″潡鐨勬敮鎸?

鏀寔澶氫釜閰嶇疆鏂囦歡錛屾槸鎸囦綘鑳藉涓篈ctionServlet鍚屾椂鎸囧畾澶氫釜xml閰嶇疆鏂囦歡錛屾枃浠朵箣闂翠互閫楀彿鍒嗛殧錛屾瘮濡係truts鎻愪緵鐨凪ailReader婕旂ず渚嬪瓙涓氨閲囩敤璇ョ鏂規硶銆?/p>

  <!-- Action Servlet Configuration -->
            <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml, /WEB-INF/struts-config-registration.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
            </servlet>

榪欑鏂規硶鍙互寰堝ソ鍦拌В鍐充慨鏀瑰啿紿佺殑闂錛屼笉鍚岀殑寮鍙戜漢鍛樺彲浠ュ湪涓嶅悓鐨勯厤緗枃浠朵腑璁劇疆鑷繁鐨凙ction銆丄ctionForm絳夌瓑錛堝綋鐒朵笉鏄姣忎釜寮鍙戜漢鍛橀兘闇瑕佽嚜宸辯殑閰嶇疆鏂囦歡錛屽彲浠ユ寜鐓х郴緇熺殑鍔熻兘妯″潡榪涜鍒掑垎錛夈備絾鏄紝榪欓噷榪樻槸瀛樺湪涓涓綔鍦ㄧ殑闂錛屽氨鏄彲鑳戒笉鍚岀殑閰嶇疆鏂囦歡涔嬮棿浼氫駭鐢熷啿紿侊紝鍥犱負鍦ˋctionServlet鍒濆鍖栫殑鏃跺欒繖鍑犱釜鏂囦歡鏈緇堣繕鏄渶瑕佸悎騫跺埌涓璧風殑銆傛瘮濡傦紝鍦╯truts-config.xml涓厤緗簡涓涓悕涓簊uccess鐨?lt;forward>錛岃屽湪struts-config-registration.xml涓篃閰嶇疆浜嗕竴涓悓鏍風殑<forward>錛岄偅涔堟墽琛岃搗鏉ュ氨浼氫駭鐢熷啿紿併?/p>

涓轟簡褰誨簳瑙e喅榪欑鍐茬獊錛孲truts 1.1涓紩榪涗簡妯″潡錛圡odule錛夌殑姒傚康銆備竴涓ā鍧楀氨鏄竴涓嫭绔嬬殑瀛愮郴緇燂紝浣犲彲浠ュ湪鍏朵腑榪涜浠繪剰鎵闇鐨勯厤緗紝鍚屾椂鍙堜笉蹇呮媴蹇冨拰鍏跺畠鐨勯厤緗枃浠朵駭鐢熷啿紿併傚洜涓哄墠闈㈡垜浠榪囷紝ActionServlet鏄皢涓嶅悓鐨勬ā鍧椾俊鎭繚瀛樺湪涓嶅悓鐨凪oduleConfig瀵硅薄涓殑銆傝浣跨敤妯″潡鐨勫姛鑳斤紝闇瑕佽繘琛屼互涓嬬殑鍑嗗宸ヤ綔錛?/p>

1銆佷負姣忎釜妯″潡鍑嗗涓涓厤緗枃浠?/p>

2銆侀厤緗畐eb.xml鏂囦歡錛岄氱煡鎺у埗鍣?/p>

鍐沖畾閲囩敤澶氫釜妯″潡浠ュ悗錛屼綘闇瑕佸皢榪欎簺淇℃伅鍛婅瘔鎺у埗鍣紝榪欓渶瑕佸湪web.xml鏂囦歡榪涜閰嶇疆銆備笅闈㈡槸涓涓吀鍨嬬殑澶氭ā鍧楅厤緗細

<init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
            <param-name>config/customer</param-name>
            <param-value>/WEB-INF/struts-config-customer.xml</param-value>
            </init-param>
            <init-param>
            <param-name>config/order</param-name>
            <param-value>/WEB-INF/struts-config-order.xml</param-value>
            </init-param>

瑕侀厤緗涓ā鍧楋紝浣犻渶瑕佸湪鍘熸湁鐨勪竴涓?lt;init-param>錛堝湪Struts 1.1涓皢鍏跺搴旂殑妯″潡縐頒負緙虹渷妯″潡錛夌殑鍩虹涔嬩笂錛屽鍔犳ā鍧楀搴旂殑<init-param>銆傚叾涓?lt;param-name>琛ㄧず涓篶onfig/XXX鐨勫艦寮忥紝鍏朵腑XXX涓哄搴旂殑妯″潡鍚嶏紝<param-value>涓繕鏄寚瀹氭ā鍧楀搴旂殑閰嶇疆鏂囦歡銆備笂闈㈣繖涓緥瀛愯鏄庤搴旂敤鏈変笁涓ā鍧楋紝鍒嗗埆鏄己鐪佹ā鍧椼乧ustomer鍜宱rder錛屽畠浠垎鍒搴斾笉鍚岀殑閰嶇疆鏂囦歡銆?/p>

3銆佸噯澶囧悇涓ā鍧楁墍闇鐨凙ctionForm銆丄ction鍜孞SP絳夎祫婧?/p>

浣嗘槸瑕佹敞鎰忕殑鏄紝妯″潡鐨勫嚭鐜頒篃鍚屾椂甯︽潵浜嗕竴涓棶棰橈紝鍗沖浣曞湪涓嶅悓妯″潡闂磋繘琛岃漿鍙戯紵鏈変袱縐嶆柟娉曞彲浠ュ疄鐜版ā鍧楅棿鐨勮漿鍙戯紝涓縐嶅氨鏄湪<forward>錛堝叏灞鎴栬呮湰鍦幫級涓畾涔夛紝鍙﹀涓縐嶅氨鏄埄鐢╫rg.apache.struts.actions.SwitchAction銆?/p>

涓嬮潰灝辨槸涓涓叏灞鐨勪緥瀛愶細

  ...
            <struts-config>
            ...
            <global-forwards>
            <forward name="toModuleB"
            contextRelative="true"
            path="/moduleB/index.do"
            redirect="true"/>
            ...
            </global-forwards>
            ...
            </struts-config>

鍙互鐪嬪嚭錛屽彧闇瑕佸湪鍘熸湁鐨刾ath灞炴у墠鍔犱笂妯″潡鍚嶏紝鍚屾椂灝哻ontextRelative灞炴х疆涓簍rue鍗沖彲銆傛澶栵紝浣犱篃鍙互鍦?lt;action>涓畾涔変竴涓被浼肩殑鏈湴<forward>銆?/p>

  <action-mappings>
            <!-- Action mapping for profile form -->
            <action path="/login"
            type="com.ncu.test.LoginAction"
            name="loginForm"
            scope="request"
            input="tile.userLogin"
            validate="true">
            <forward name="success" contextRelative="true" path="/moduleA/login.do"/>
            </action>
            </action-mappings>

濡傛灉浣犲凡緇忓鍦ㄥ叾浠栨ā鍧楋紝闇瑕佽漿鍥炲埌緙虹渷妯″潡錛岄偅搴旇綾諱技涓嬮潰榪欐牱瀹氫箟錛屽嵆妯″潡鍚嶄負絀恒?/p>

<forward name="success" contextRelative="true" path="/login.do"/>

姝ゅ錛屼綘涔熷彲浠ヤ嬌鐢╫rg.apache.struts.actions.SwitchAction錛屼緥濡傦細

   ...
            <action-mappings>
            <action path="/toModule"
            type="org.apache.struts.actions.SwitchAction"/>
            ...
            </action-mappings>
            ...

ActionServlet

鎴戜滑棣栧厛鏉ヤ簡瑙VC涓殑鎺у埗鍣ㄣ傚湪Struts 1.1涓己鐪侀噰鐢ˋctionServlet綾繪潵鍏呭綋鎺у埗鍣ㄣ傚綋鐒跺鏋淎ctionServlet涓嶈兘婊¤凍浣犵殑闇姹傦紝浣犱篃鍙互閫氳繃緇ф壙瀹冩潵瀹炵幇鑷繁鐨勭被銆傝繖鍙互鍦?WEB-INF/web.xml涓潵鍏蜂綋鎸囧畾銆?/p>

瑕佹帉鎻ctionServlet錛屽氨蹇呴』浜嗚В瀹冩墍鎵紨鐨勮鑹層傞鍏堬紝ActionServlet琛ㄧずMVC緇撴瀯涓殑鎺у埗鍣ㄩ儴鍒嗭紝瀹冮渶瑕佸畬鎴愭帶鍒跺櫒鎵闇鐨勫墠绔帶鍒跺強杞彂璇鋒眰絳夎亴璐c傚叾嬈★紝ActionServlet琚疄鐜頒負涓涓笓闂ㄥ鐞咹TTP璇鋒眰鐨凷ervlet錛屽畠鍚屾椂鍏鋒湁servlet鐨勭壒鐐廣傚湪Struts 1.1涓畠涓昏瀹屾垚浠ヤ笅鍔熻兘錛?

  • 鎺ユ敹瀹㈡埛绔姹?
  • 鏍規嵁瀹㈡埛绔殑URI灝嗚姹傛槧灝勫埌涓涓浉搴旂殑Action綾?
  • 浠庤姹備腑鑾峰彇鏁版嵁濉厖Form Bean錛堝鏋滈渶瑕侊級
  • 璋冪敤Action綾葷殑execute()鏂規硶鑾峰彇鏁版嵁鎴栬呮墽琛屼笟鍔¢昏緫
  • 閫夋嫨姝g‘鐨勮鍥懼搷搴斿鎴?

姝ゅ錛孉ctionServlet榪樿礋璐e垵濮嬪寲鍜屾竻闄ゅ簲鐢ㄩ厤緗俊鎭殑浠誨姟銆侫ctionServlet鐨勫垵濮嬪寲宸ヤ綔鍦╥nit鏂規硶涓畬鎴愶紝瀹冨彲浠ュ垎涓轟袱涓儴鍒嗭細鍒濆鍖朅ctionServlet鑷韓鐨勪竴浜涗俊鎭互鍙婃瘡涓ā鍧楃殑閰嶇疆淇℃伅銆傚墠鑰呬富瑕侀氳繃initInternal銆乮nitOther鍜宨nitServlet涓変釜鏂規硶鏉ュ畬鎴愩?/p>

鎴戜滑鍙互鍦?WEB-INF/web.xml涓寚瀹氬叿浣撶殑鎺у埗鍣ㄤ互鍙婂垵濮嬪弬鏁幫紝鐢變簬鐗堟湰鐨勫彉鍖栦互鍙奡truts 1.1涓ā鍧楁蹇電殑寮曡繘錛屼竴浜涘垵濮嬪弬鏁拌搴熷純鎴栬呯Щ鍏ュ埌/WEB-INF/struts-config.xml涓畾涔夈備笅闈㈠垪鍑烘墍鏈夎搴熷純鐨勫弬鏁幫紝鐩稿簲鍦板湪web.xml鏂囦歡涓篃涓嶉紦鍔卞啀浣跨敤銆?/p>

  • application
  • bufferSize
  • content
  • debug
  • factory
  • formBean
  • forward
  • locale
  • mapping
  • maxFileSize
  • multipartClass
  • nocache
  • null
  • tempDir

ActionServlet鏍規嵁涓嶅悓鐨勬ā鍧楁潵鍒濆鍖朚oduleConfig綾伙紝騫跺湪鍏朵腑浠XXconfig闆嗗悎鐨勬柟寮忎繚瀛樿妯″潡鐨勫悇縐嶉厤緗俊鎭紝姣斿ActionConfig錛孎ormBeanConfig絳夈?/p>

鍒濆鍖栧伐浣滃畬鎴愪箣鍚庯紝ActionServlet鍑嗗鎺ユ敹瀹㈡埛璇鋒眰銆傞拡瀵規瘡涓姹傦紝鏂規硶process(HttpServletRequest request, HttpServletResponse response)灝嗚璋冪敤銆傝鏂規硶鎸囧畾鍏蜂綋鐨勬ā鍧楋紝鐒跺悗璋冪敤璇ユā鍧楃殑RequestProcessor鐨刾rocess鏂規硶銆?/p>

protected void process(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException, ServletException {
            RequestUtils.selectModule(request, getServletContext());
            getRequestProcessor(getModuleConfig(request)).process(request, response);
            }

RequestProcessor鍖呭惈浜哠truts鎺у埗鍣ㄧ殑鎵鏈夊鐞嗛昏緫錛屽畠璋冪敤涓嶅悓鐨刾rocessXXX鏂規硶鏉ュ畬鎴愪笉鍚岀殑澶勭悊銆備笅琛ㄥ垪鍑哄叾涓嚑涓富瑕佺殑鏂規硶錛?/p>

鏂規硶 鍔熻兘
processPath 鑾峰彇瀹㈡埛绔殑璇鋒眰璺緞
processMapping 鍒╃敤璺緞鏉ヨ幏寰楃浉搴旂殑ActionMapping
processActionForm 鍒濆鍖朅ctionForm錛堝鏋滈渶瑕侊級騫跺瓨鍏ユ紜殑scope涓?/td>
processActionCreate 鍒濆鍖朅ction
processActionPerform 璋冪敤Action鐨別xecute鏂規硶
processForwardConfig 澶勭悊Action榪斿洖鐨凙ctionForward

ActionForm

瀵逛簬ActionForm浣犲彲浠ヤ粠浠ヤ笅鍑犱釜鏂歸潰鏉ョ悊瑙e畠錛?

  1. ActionForm琛ㄧずHTTP紿椾綋涓殑鏁版嵁錛屽彲浠ュ皢鍏剁湅浣滄槸妯″瀷鍜岃鍥劇殑涓粙錛屽畠璐熻矗淇濆瓨瑙嗗浘涓殑鏁版嵁渚涙ā鍨嬫垨鑰呰鍥句嬌鐢ㄣ係truts 1.1鏂囨。涓妸瀹冩瘮浣淗TTP鍜孉ction涔嬮棿鐨勯槻鐏錛岃繖浣撶幇浜咥ctionForm鍏鋒湁鐨勮繃婊や繚鎶ょ殑浣滅敤錛屽彧鏈夐氳繃ActionForm楠岃瘉鐨勬暟鎹墠鑳藉鍙戦佸埌Action澶勭悊銆?
  2. ActionForm鏄笌涓涓垨澶氫釜ActionConfig鍏寵仈鐨凧avaBean錛屽湪鐩稿簲鐨刟ction鐨別xecute鏂規硶琚皟鐢ㄤ箣鍓嶏紝ActionForm浼氳嚜鍔ㄥ埄鐢ㄨ姹傚弬鏁版潵濉厖鑷繁錛堝垵濮嬪寲灞炴э級銆?
  3. ActionForm鏄竴涓娊璞$被錛屼綘蹇呴』閫氳繃緇ф壙鏉ュ疄鐜拌嚜宸辯殑綾匯?

ActionForm棣栧厛鍒╃敤灞炴х殑getter鍜宻etter鏂規硶鏉ュ疄鐜板垵濮嬪寲錛屽垵濮嬪寲瀹屾瘯鍚庯紝ActionForm鐨剉alidate鏂規硶琚皟鐢紝浣犲彲浠ュ湪鍏朵腑鏉ユ鏌ヨ姹傚弬鏁扮殑姝g‘鎬у拰鏈夋晥鎬э紝騫朵笖鍙互灝嗛敊璇俊鎭互ActionErrors鐨勫艦寮忚繑鍥炲埌杈撳叆紿椾綋銆傚惁鍒欙紝ActionForm灝嗚浣滀負鍙傛暟浼犵粰action鐨別xecute鏂規硶浠ヤ緵浣跨敤銆?/p>

ActionForm bean鐨勭敓鍛藉懆鏈熷彲浠ヨ緗負session錛堢己鐪侊級鍜宺equest錛屽綋璁劇疆涓簊ession鏃訛紝璁板緱鍦╮eset鏂規硶涓皢鎵鏈夌殑灞炴ч噸鏂拌緗負鍒濆鍊箋?/p>

鐢變簬ActionForm瀵瑰簲浜嶩TTP紿椾綋錛屾墍浠ラ殢鐫欏甸潰鐨勫澶氾紝浣犵殑ActionForm灝嗕細鎬ラ熷鍔犮傝屼笖鍙兘鍚屼竴綾誨瀷欏甸潰瀛楁灝嗕細鍦ㄤ笉鍚岀殑ActionForm涓嚭鐜幫紝騫朵笖鍦ㄦ瘡涓狝ctionForm涓兘瀛樺湪鐩稿悓鐨勯獙璇佷唬鐮併備負浜嗚В鍐寵繖涓棶棰橈紝浣犲彲浠ヤ負鏁翠釜搴旂敤瀹炵幇涓涓狝ctionForm鎴栬呰嚦灝戜竴涓ā鍧楀搴斾簬涓涓狝ctionForm銆?/p>

浣嗘槸錛岃仛鍚堢殑浠d環灝辨槸澶嶇敤鎬у緢宸紝鑰屼笖闅劇淮鎶ゃ傞拡瀵硅繖涓棶棰橈紝鍦⊿truts 1.1涓彁鍑轟簡DynaActionForm鐨勬蹇點?/p>

DynaActionForm綾?/strong>

DynaActionForm鐨勭洰鐨勫氨鏄噺灝慉ctionForm鐨勬暟鐩紝鍒╃敤瀹冧綘涓嶅繀鍒涘緩涓涓釜鍏蜂綋鐨凙ctionForm綾伙紝鑰屾槸鍦ㄩ厤緗枃浠朵腑閰嶇疆鍑烘墍闇鐨勮櫄鎷烝ctionForm銆備緥濡傦紝鍦ㄤ笅琛ㄤ腑閫氳繃鎸囧畾<form-bean>鐨則ype涓?org.apache.struts.action.DynaActionForm"鏉ュ垱寤轟竴涓姩鎬佺殑ActionForm--loginForm銆?/p>

<form-beans>
            <form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="actionClass" type="java.lang.String"/>
            <form-property name="username" type="java.lang.String"/>
            <form-property name="password" type="java.lang.String"/>
            </form-bean>
            </form-beans>

鍔ㄦ佺殑ActionForm鐨勪嬌鐢ㄦ柟娉曡窡鏅氱殑ActionForm鐩稿悓錛屼絾鏄娉ㄦ剰涓鐐廣傛櫘閫氱殑ActionForm瀵硅薄闇瑕佷負姣忎釜灞炴ф彁渚沢etter鍜宻etter鏂規硶錛屼互涓婇潰鐨勪緥瀛愯岃█錛屾垜浠渶瑕佹彁渚沢etUsername() 鍜?setUsername()鏂規硶鍙栧緱鍜岃緗畊sername灞炴э紝鍚屾牱鍦版湁涓瀵規柟娉曠敤浜庡彇寰楀拰璁劇疆password灞炴у拰actionClass灞炴с?/p>

濡傛灉浣跨敤DynaActionForm錛屽畠灝嗗睘鎬т繚瀛樺湪涓涓狧ashMap綾誨璞′腑錛屽悓鏃舵彁渚涚浉搴旂殑get(name) 鍜?set(name)鏂規硶錛屽叾涓弬鏁皀ame鏄璁塊棶鐨勫睘鎬у悕銆備緥濡傝璁塊棶DynaActionForm涓璾sername鐨勫鹼紝鍙互閲囩敤綾諱技鐨勪唬鐮侊細

String username = (String)form.get("username")錛?/code>

鐢變簬鍊煎瓨鏀句簬涓涓狧ashMap瀵硅薄錛屾墍浠ヨ璁板緱瀵筭et()鏂規硶榪斿洖鐨凮bject瀵硅薄鍋氬己鍒舵х被鍨嬭漿鎹€傛鏄敱浜庤繖鐐瑰尯鍒紝濡傛灉浣犲湪Action涓潪甯擱綣佸湴浣跨敤ActionForm瀵硅薄錛屽緩璁繕鏄嬌鐢ㄦ櫘閫氱殑ActionForm瀵硅薄銆?/p>

鍦⊿truts 1.1涓紝闄や簡DynaActionForm浠ュ錛岃繕鎻愪緵浜嗚〃鍗曡緭鍏ヨ嚜鍔ㄩ獙璇佺殑鍔熻兘錛屽湪鍖卭rg.apache.struts.validator涓彁渚涗簡璁稿鏈夌敤鐨勭被錛屽叾涓渶甯歌鐨勫氨鏄疍ynaValidatorForm綾匯?/p>

DynaValidatorForm綾?/strong>

DynaValidatorForm鏄疍ynaActionForm鐨勫瓙綾伙紝瀹冭兘澶熸彁渚涘姩鎬丄ctionForm鍜岃嚜鍔ㄨ〃鍗曡緭鍏ラ獙璇佺殑鍔熻兘銆傚拰浣跨敤DynaActionForm綾諱技錛屼綘蹇呴』棣栧厛鍦ㄩ厤緗枃浠朵腑榪涜閰嶇疆錛?/p>

<form-beans>
            <form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
            <form-property name="actionClass" type="java.lang.String"/>
            <form-property name="username" type="java.lang.String"/>
            <form-property name="password" type="java.lang.String"/>
            </form-bean>
            </form-beans>

鍚屾椂瑕佸畾涔夐獙璇佺殑鎻掍歡錛?/p>

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
            <set-property property="pathnames"
            value="/WEB-INF/validator-rules.xml,
            /WEB-INF/validation.xml"/>
            </plug-in>

鍏朵腑鐨剉alidator.xml鍜寁alidator-rules.xml鍒嗗埆琛ㄧず楠岃瘉瀹氫箟鍜岄獙璇佽鍒欑殑鍐呭錛堝彲浠ュ悎騫跺湪涓璧鳳級錛屾瘮濡傞拡瀵逛笂渚嬩腑鐨凞ynaValidatorForm錛屾垜浠湁濡備笅楠岃瘉瀹氫箟錛坴alidator.xml錛夛細

<?xml version="1.0" encoding="ISO-8859-1" ?>
            <!DOCTYPE form-validation PUBLIC
            "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
            "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
            <!--    Validation Rules    $Id: validation.xml-->
            <form-validation>
            <!-- ========== Default Language Form Definitions ===================== -->
            <formset>
            <form name="loginForm">
            <field property="username" depends="required, minlength,maxlength">
            <arg0   key="prompt.username"/>
            <arg1   key="${var:minlength}" name="minlength" resource="false"/>
            <arg2   key="${var:maxlength}" name="maxlength" resource="false"/>
            <var>
            <var-name>maxlength</var-name>
            <var-value>16</var-value>
            </var>
            <var>
            <var-name>minlength</var-name>
            <var-value>3</var-value>
            </var>
            </field>
            <field property="password" depends="required, minlength,maxlength" bundle="alternate">
            <arg0   key="prompt.password"/>
            <arg1   key="${var:minlength}" name="minlength" resource="false"/>
            <arg2   key="${var:maxlength}" name="maxlength" resource="false"/>
            <var>
            <var-name>maxlength</var-name>
            <var-value>16</var-value>
            </var>
            <var>
            <var-name>minlength</var-name>
            <var-value>3</var-value>
            </var>
            </field>
            </form>
            </formset>
            </form-validation>

浠庝笂榪板畾涔変腑錛屾垜浠彲浠ョ湅鍒板浜庡瓧孌祏sername鏈変笁欏歸獙璇侊細required, minlength, maxlength錛屾剰鎬濇槸璇ュ瓧孌典笉鑳戒負絀猴紝鑰屼笖闀垮害鍦?鍜?6涔嬮棿銆傝寁alidator-rules.xml鏂囦歡鍒欏彲浠ラ噰鐢⊿truts鎻愪緵鐨勭己鐪佹枃浠躲傛敞鎰忓湪<form-bean>涓畾涔夌殑form鏄浣曚笌validation.xml涓殑form鍏寵仈璧鋒潵鐨勩傛渶鍚庯紝瑕佸惎鍔ㄨ嚜鍔ㄩ獙璇佸姛鑳斤紝榪橀渶瑕佸皢Action閰嶇疆鐨剉alidate灞炴ц緗負true銆?/p>

<action path="/login"
            type="com.ncu.test.LoginAction"
            name="loginForm"
            scope="request"
            input="tile.userLogin"validate="true">

姝ゆ椂錛孲truts灝嗘牴鎹畑ml閰嶇疆鏂囦歡涓殑瀹氫箟鏉ユ楠岃〃鍗曡緭鍏ワ紝騫跺皢涓嶇鍚堣姹傜殑閿欒淇℃伅杈撳嚭鍒伴〉闈€備絾鏄綘鍙兘浼氭兂錛氳繖涓姛鑳借櫧鐒跺ソ錛屽彲鏄粈涔堟楠岄兘璺戝埌鏈嶅姟鍣ㄧ鎵ц錛屾晥鐜囨柟闈㈠拰鐢ㄦ埛鏄撶敤鎬ф柟闈㈡槸涓嶆槸鏈変簺闂錛熶綘鍙兘浼氭蹇佃搗閭g畝鍗曠殑JavaScript瀹㈡埛绔獙璇併?/p>

涓嶇敤鎷呭績錛屽湪Struts 1.1涓篃鏀寔JavaScript瀹㈡埛绔獙璇併傚鏋滀綘閫夋嫨浜嗗鎴風楠岃瘉錛屽綋鏌愪釜琛ㄥ崟琚彁浜や互鍚庯紝Struts 1.1鍚姩瀹㈡埛绔獙璇侊紝濡傛灉嫻忚鍣ㄤ笉鏀寔JavaScript楠岃瘉錛屽垯鏈嶅姟鍣ㄧ楠岃瘉琚惎鍔紝榪欑鍙岄噸楠岃瘉鏈哄埗鑳藉鏈澶ч檺搴﹀湴婊¤凍鍚勭寮鍙戣呯殑闇瑕併侸avaScript楠岃瘉浠g爜涔熸槸鍦╲alidator-rules.xml鏂囦歡涓畾涔夌殑銆傝鍚姩瀹㈡埛绔獙璇侊紝浣犲繀欏誨湪鐩稿簲鐨凧SP鏂囦歡涓仛濡備笅璁劇疆錛?

  1. 涓?lt;html:form>澧炲姞onsubmit灞炴?
  2. 璁劇疆Javascript鏀寔

涓嬭〃涓垪鍑轟簡涓JSP鏂囦歡鐨勭ず渚嬩唬鐮侊紝綰㈠瓧閮ㄥ垎涓篔avascript楠岃瘉鎵闇浠g爜銆?/p>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
            <table bgcolor="#9AFF9A" cellspacing="0" cellpadding="10" border="1" width="100%">
            <tr>
            <td>
            <table cellspacing="0" cellpadding="0" border="0" width="100%">
            <tr bgcolor="#696969">
            <td align="center">
            <font color="#FFFFFF">Panel 3: Profile</font>
            </td>
            </tr>
            <tr>
            <td><br>
            <html:errors/>
            <html:form action="/login.do" focus="username"  onsubmit="return validateLoginForm(this);">
            <html:hidden property="actionClass"/>
            <center>
            <table>
            <tr>
            <td>UserName:</td>
            <td><html:text property="username" size="20"/></td>
            </tr>
            <tr>
            <td>Password:</td>
            <td><html:password property="password" size="20"/></td>
            </tr>
            <tr>
            <td colspan=2><html:submit property="submitProperty" value="Submit"/></td>
            </table>
            </center>
            </html:form>
            <html:javascript formName="loginForm" dynamicJavascript="true" staticJavascript="false"/>
            <script language="Javascript1.1" src="staticJavascript.jsp"></script>
            </td>
            </tr>
            </table>
            </td>
            </tr>
            </table>

鍏朵腑onsubmit鐨勫間負"return validateLoginForm(this);"錛屽畠鐨勮娉曚負錛?/p>

return validate + struts-config.xml涓畾涔夌殑form-bean鍚嶇О + (this);

staticJavascript.jsp鐨勫唴瀹逛負錛?/p>

<%@ page language="java" %>
            <%-- set document type to Javascript (addresses a bug in Netscape according to a web resource --%>
            <%@ page contentType="application/x-javascript" %>
            <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
            <html:javascript dynamicJavascript="false" staticJavascript="true"/>

濡傛灉validator-rules.xml涓畾涔夌殑鍩烘湰楠岃瘉鍔熻兘涓嶈兘婊¤凍浣犵殑闇姹傦紝浣犲彲浠ヨ嚜宸辨坊鍔犳墍闇鐨勯獙璇佺被鍨嬨?/p>

Action

鎴戜滑閫氳繃緇ф壙Action綾繪潵瀹炵幇鍏蜂綋鐨勬墽琛岀被銆傚叿浣揂ction綾葷殑鍔熻兘涓鑸兘鍦╡xecute錛堜互鍓嶆槸perform鏂規硶錛夋柟娉曚腑瀹屾垚錛屽叾涓富瑕佹秹鍙婂埌浠ヤ笅鍑犱釜鏂歸潰錛?

  1. 杈呭姪ActionForm榪涜涓浜涜〃鍗曟暟鎹殑媯鏌ャ?
  2. 鎵ц蹇呰鐨勪笟鍔¢昏緫錛屾瘮濡傚瓨鍙栨暟鎹簱錛岃皟鐢ㄥ疄浣揵ean絳夈?
  3. 鏇存柊鏈嶅姟鍣ㄧ鐨刡ean鏁版嵁錛屽悗緇璞′腑鍙兘浼氱敤鍒拌繖浜涙暟鎹紝姣斿鍦↗SP涓埄鐢╞ean:write鏉ヨ幏寰楄繖浜涙暟鎹?
  4. 鏍規嵁澶勭悊緇撴灉鍐沖畾紼嬪簭鐨勫幓澶勶紝騫朵互ActionForward瀵硅薄鐨勫艦寮忚繑鍥炵粰ActionServlet銆?

鎻愮ず錛?/strong>鐢變簬鍦ˋction鍜孉ctionForm涓兘鍙互瀹炵幇楠岃瘉鏂規硶錛岄偅涔堝浣曟潵瀹夋帓瀹冧滑涔嬮棿鐨勫垎宸ュ憿錛熶竴鑸潵璇達紝鎴戜滑縐夌潃MVC鍒嗙鐨勫師鍒欙紝涔熷氨鏄鍥劇駭鐨勯獙璇佸伐浣滄斁鍦ˋctionForm鏉ュ畬鎴愶紝姣斿杈撳叆涓嶈兘涓虹┖錛宔mail鏍煎紡鏄惁姝g‘錛屽埄鐢╒alidatorForm鍙互寰堣交鏉懼湴瀹屾垚榪欎簺宸ヤ綔銆傝屼笌鍏蜂綋涓氬姟鐩稿叧鐨勯獙璇佸垯鏀懼叆Action涓紝榪欐牱灝卞彲浠ヨ幏寰楁渶澶ctionForm閲嶇敤鎬х殑鍙兘銆?/em>

鍓嶉潰鎴戜滑鎻愬埌榪囷紝鎴戜滑涓誨紶灝嗕笟鍔¢昏緫鎵ц鍒嗙鍒板崟鐙殑JavaBean涓紝鑰孉ction鍙礋璐i敊璇鐞嗗拰嫻佺▼鎺у埗銆傝屼笖鑰冭檻鍒伴噸鐢ㄦх殑鍘熷洜錛屽湪鎵ц涓氬姟閫昏緫鐨凧avaBean涓笉瑕佸紩鐢ㄤ換浣曚笌Web搴旂敤鐩稿叧鐨勫璞★紝姣斿HttpServletRequest錛孒ttpServletResponse絳夊璞★紝鑰屽簲璇ュ皢鍏惰漿鍖栦負鏅氱殑Java瀵硅薄銆傚叧浜庤繖涓鐐癸紝鍙互鍙傝働etstore涓璚AF妗嗘灦鐨勫疄鐜版濊礬銆?/p>

姝ゅ錛屼綘鍙兘榪樻敞鎰忓埌execute涓巔erform鐨勪竴涓尯鍒細execute鏂規硶綆鍗曞湴鎺峰嚭Exception寮傚父錛岃宲erform鏂規硶鍒欐幏鍑篠ervletException鍜孖OException寮傚父銆傝繖涓嶆槸璇碨truts 1.1鍦ㄥ紓甯稿鐞嗗姛鑳芥柟闈㈠急鍖栦簡錛岃屾槸涓轟簡閰嶅悎Struts 1.1涓竴涓緢濂界殑鍔熻兘--瀹gО寮忓紓甯稿鐞嗘満鍒躲?/p>

瀹gО寮忓紓甯稿鐞?/span>

鍜孍JB涓殑瀹gО寮忎簨鍔″鐞嗘蹇電被浼鹼紝瀹gО寮忓紓甯稿鐞嗗叾瀹炲氨鏄彲閰嶇疆鐨勫紓甯稿鐞嗭紝浣犲彲浠ュ湪閰嶇疆鏂囦歡涓寚瀹氱敱璋佹潵澶勭悊Action綾諱腑鎺峰嚭鐨勬煇縐嶅紓甯搞備綘鍙互鎸夌収浠ヤ笅姝ラ鏉ュ畬鎴愯鍔熻兘錛?

  1. 瀹炵幇org.apache.struts.action.ExceptionHandler鐨勫瓙綾伙紝瑕嗙洊execute鏂規硶錛屽湪璇ユ柟娉曚腑澶勭悊寮傚父騫朵笖榪斿洖涓涓狝ctionForward瀵硅薄
  2. 鍦ㄩ厤緗枃浠朵腑閰嶇疆寮傚父澶勭悊瀵硅薄錛屼綘鍙互閰嶇疆涓涓叏灞鐨勫鐞嗙被鎴栬呭崟鐙負姣忎釜Action閰嶇疆澶勭悊綾?

涓嬭〃灝卞畾涔変簡涓涓叏灞鐨勫鐞嗙被CustomizedExceptionHandler錛屽畠琚敤鏉ュ鐞嗘墍鏈夌殑寮傚父銆?/p>

<global-exceptions>
            <exception
            handler="com.yourcorp.CustomizedExceptionHandler"
            key="global.error.message"
            path="/error.jsp"
            scope="request"
            type="java.lang.Exception"/>
            </global-exceptions>

鍏朵腑鍏蜂綋鐨勫弬鏁板惈涔夛紝鍙互鍙傝僂xceptionHandler.java婧愭枃浠躲?/p>

taglib

璁插畬浜嗘ā鍨嬪拰鎺у埗鍣紝鎺ヤ笅鏉ユ垜浠娑夊強鐨勬槸瑙嗗浘銆傝鍥劇殑瑙掕壊涓昏鏄敱JSP鏉ュ畬鎴愶紝浠嶫SP鐨勮鑼冧腑鍙互鐪嬪嚭錛屽湪瑙嗗浘灞傚彲浠?鎶樿吘"鐨勬妧鏈笉鏄緢澶氾紝涓昏鐨勫氨鏄嚜瀹氫箟鏍囪搴撶殑搴旂敤銆係truts 1.1鍦ㄥ師鏈夌殑鍥涗釜鏍囪搴撶殑鍩虹涓婃柊澧炰簡涓や釜鏍囪搴?-Tiles鍜孨ested銆?/p>

鍏朵腑Tiles闄や簡鏇夸唬Template鐨勫熀鏈ā鏉垮姛鑳藉錛岃繕澧炲姞浜嗗竷灞瀹氫箟銆佽櫄鎷熼〉闈㈠畾涔夊拰鍔ㄦ侀〉闈㈢敓鎴愮瓑鍔熻兘銆俆iles寮哄ぇ鐨勬ā鏉垮姛鑳借兘澶熶嬌欏甸潰鑾峰緱鏈澶х殑閲嶇敤鎬у拰鐏墊椿鎬э紝姝ゅ鍙互緇撳悎Tiles閰嶇疆鏂囦歡涓殑欏甸潰瀹氫箟鍜孉ction鐨勮漿鍙戦昏緫錛屽嵆浣犲彲浠ュ皢涓涓狝ction杞彂鍒頒竴涓湪Tiles閰嶇疆鏂囦歡涓畾涔夌殑铏氭嫙欏甸潰錛屼粠鑰屽噺灝戦〉闈㈢殑鏁伴噺銆傛瘮濡傦紝涓嬭〃涓殑Action瀹氫箟浜嗕竴涓漿鍙戣礬寰勶紝瀹冪殑緇堢偣鏄痶ile.userMain錛岃屽悗鑰呮槸浣犲湪Tiles閰嶇疆鏂囦歡涓畾涔夌殑涓涓〉闈€?/p>


            <!-- ========== Action Mapping Definitions ============================== -->
            <action-mappings>
            <!-- Action mapping for profile form -->
            <action path="/login"
            type="com.ncu.test.LoginAction"
            name="loginForm"
            scope="request"
            input="tile.userLogin"
            validate="true">
            <forward name="success" path="tile.userMain"/>
            </action>
            </action-mappings>
            

Tiles閰嶇疆鏂囦歡錛歵iles-defs.xml


            <!DOCTYPE tiles-definitions PUBLIC
            "-//Apache Software Foundation//DTD Tiles Configuration//EN"       "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">
            <tiles-definitions>
            <!-- =======================================================  -->
            <!-- Master definitions                                       -->
            <!-- =======================================================  -->
            <!-- Page layout used as root for all pages. -->
            <definition name="rootLayout" path="/tiles-layouts/rootLayout.jsp">
            <put name="titleString" value="CHANGE-ME"/>
            <put name="topMenu" value="/tiles-components/topMenu.jsp"/>
            <put name="leftMenu" value="/tiles-components/panel1.jsp"/>
            <put name="body" value="CHANGE-ME"/>
            <put name="footer" value="/tiles-components/footer.jsp"/>
            </definition>
            <!-- =======================================================  -->
            <!-- Page definitions 					-->
            <!-- =======================================================  -->
            <!-- User Login page -->
            <definition name="tile.userLogin" extends="rootLayout">
            <put name="titleString" value="User Login"/>
            <put name="body" value="/src/userLogin.jsp"/>
            </definition>
            <!-- User Main page -->
            <definition name="tile.userMain" extends="rootLayout">
            <put name="titleString" value="User Main"/>
            <put name="body" value="/src/userMain.jsp"/>
            </definition>
            </tiles-definitions>
            

鑰孨ested鏍囪搴撶殑浣滅敤鏄浠ヤ笂榪欎簺鍩烘湰鏍囪搴撹兘澶熷祵濂椾嬌鐢紝鍙戞尌鏇村ぇ鐨勪綔鐢ㄣ?/p>

Commons Logging 鎺ュ彛

鎵璋撶殑Commons Logging鎺ュ彛錛屾槸鎸囧皢鏃ュ織鍔熻兘鐨勪嬌鐢ㄤ笌鏃ュ織鍏蜂綋瀹炵幇鍒嗗紑錛岄氳繃閰嶇疆鏂囦歡鏉ユ寚瀹氬叿浣撲嬌鐢ㄧ殑鏃ュ織瀹炵幇銆傝繖鏍蜂綘灝卞彲浠ュ湪Struts 1.1涓氳繃緇熶竴鐨勬帴鍙f潵浣跨敤鏃ュ織鍔熻兘錛岃屼笉鍘葷鍏蜂綋鏄埄鐢ㄧ殑鍝鏃ュ織瀹炵幇錛屾湁鐐逛簬綾諱技JDBC鐨勫姛鑳姐係truts 1.1涓敮鎸佺殑鏃ュ織瀹炵幇鍖呮嫭錛歀og4J錛孞DK Logging API錛?LogKit錛孨oOpLog鍜孲impleLog銆?/p>

浣犲彲浠ユ寜鐓у涓嬬殑鏂瑰紡鏉ヤ嬌鐢–ommons Logging鎺ュ彛錛堝彲浠ュ弬鐓truts婧愭枃涓殑璁稿綾誨疄鐜幫級錛?/p>


            package com.foo;
            // ...
            import org.apache.commons.logging.Log;
            import org.apache.commons.logging.LogFactory;
            //...
            public class Foo {
            // ...
            private static Log log = LogFactory.getLog(Foo.class);
            // ...
            public void setBar(Bar bar) {
            if (log.isTraceEnabled()) {
            log.trace("Setting bar to " + bar);
            }
            this.bar = bar;
            }
            // ...
            }

鑰屽紑鍚棩蹇楀姛鑳芥渶綆鍗曠殑鍔炴硶灝辨槸鍦╓EB-INF/classes鐩綍涓嬫坊鍔犱互涓嬩袱涓枃浠訛細

commons-logging.properties鏂囦歡錛?/p>


            # Note: The Tiles framework now uses the commons-logging package to output different information or debug statements.
            Please refer to this package documentation to enable it. The simplest way to enable logging is to create two files in
            WEB-INF/classes:
            # commons-logging.properties
            # org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
            # simplelog.properties
            # # Logging detail level,
            # # Must be one of ("trace", "debug", "info", "warn", "error", or "fatal").
            #org.apache.commons.logging.simplelog.defaultlog=trace
            org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

simplelog.properties鏂囦歡錛?/p>


            # Logging detail level,
            # Must be one of ("trace", "debug", "info", "warn", "error", or "fatal").
            org.apache.commons.logging.simplelog.defaultlog=fatal

榪欓噷鎴戜滑閲囩敤鐨勬棩蹇楀疄鐜版槸SimpleLog錛屼綘鍙互鍦╯implelog.properties鏂囦歡鎸囧畾鏃ュ織鏄庣粏鐨勭駭鍒細trace錛宒ebug錛宨nfo錛寃arn錛宔rror鍜宖atal錛屼粠trace鍒癴atal閿欒綰у埆瓚婃潵瓚婇珮錛屽悓鏃惰緭鍑虹殑鏃ュ織淇℃伅涔熻秺鏉ヨ秺灝戙傝岃繖浜涚駭鍒槸鍜宱rg.apache.commons.logging.log鎺ュ彛涓殑鏂規硶涓涓瀵瑰簲鐨勩傝繖浜涚駭鍒槸鍚戝悗鍖呭惈鐨勶紝涔熷氨鏄墠闈㈢殑綰у埆鍖呭惈鍚庨潰綰у埆鐨勪俊鎭?/p>

浠f灄 2007-11-10 17:35 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 日韩人妻一区二区三区免费| j8又粗又长又硬又爽免费视频| 免费人成在线观看网站| 亚洲午夜日韩高清一区| 美女黄频视频大全免费的| 国产一区二区三区免费看| 国产av无码专区亚洲av毛片搜| 国产v片免费播放| 国产精品亚洲lv粉色| 在线观看国产情趣免费视频| 亚洲AV无码专区在线观看成人 | 国产精品亚洲片在线va| 无码精品A∨在线观看免费| 亚洲欧洲校园自拍都市| aa级一级天堂片免费观看| 亚洲熟妇自偷自拍另欧美| 成人国产mv免费视频| 国产AV日韩A∨亚洲AV电影| 久久久久亚洲AV无码专区桃色| 三年片在线观看免费| 亚洲理论在线观看| 免费无码又爽又刺激高潮的视频| 亚洲av无码专区首页| 久久久久亚洲AV综合波多野结衣| 日本不卡免费新一区二区三区| 久久久亚洲AV波多野结衣| 在线a毛片免费视频观看| 免费看又黄又爽又猛的视频软件 | 亚洲成人高清在线| 伊人免费在线观看| 亚洲人成77777在线播放网站不卡| 精品久久久久久久免费人妻| 成人无码区免费A∨直播| 亚洲国产模特在线播放| jizzjizz亚洲| 国产成人精品免费视频大| 免费人人潮人人爽一区二区| 亚洲一区二区在线免费观看| 免费国产精品视频| 8x成人永久免费视频| 最好2018中文免费视频|