锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
struts-config.xml Struts閰嶇疆鏂囦歡
ActionServlet 鎺у埗鍣?br>Action Class 鍖呭惈浜嬪姟閫昏緫
ActionForm 鏄劇ず妯″潡鏁版嵁
ActionMapping 甯姪鎺у埗鍣ㄥ皢璇鋒眰鏄犲皠鍒版搷浣?br>ActionForward 鐢ㄦ潵鎸囩ず鎿嶄綔杞Щ鐨勫璞?br>ActionError 鐢ㄦ潵瀛樺偍鍜屽洖鏀墮敊璇?br>Struts鏍囪搴?nbsp; 鍙互鍑忚交寮鍙戞樉紺哄眰嬈$殑宸ヤ綔
struts妗嗘灦鐨勪紭鍔?br>1.鑹ソ鐨勬灦鏋勫拰璁捐
2.鍙噸鐢紝妯″潡鍖栵紝鎵╁睍鎬уソ
3.Open source
struts-config.xml
Struts-config.xml闆嗕腑浜嗘墍鏈夐〉闈㈢殑瀵艱埅瀹氫箟銆傚浜庡ぇ鍨嬬殑WEB欏圭洰錛岄氳繃姝ら厤緗枃浠跺嵆鍙繀閫熸妸鎻″叾鑴夌粶錛岃繖涓嶇鏄浜庡墠鏈熺殑寮鍙戯紝榪樻槸鍚庢湡鐨勭淮鎶ゆ垨鍗囩駭閮芥槸澶ф湁瑁ㄧ泭鐨勩傛帉鎻truts-config.xml鏄帉鎻truts鐨勫叧閿墍鍦ㄣ?
FormBean閮ㄥ垎
<struts-config>
<!-- Form Bean Definitions -->
<form-beans>
<form-bean name=“testform" type="com.cjea.test.TestForm" />
</form-beans>
鍏ㄥ眬杞彂閮ㄥ垎
<!-- Global Forward Definitions -->
<global-forwards>
<forward name="failure" path="bad.jsp"/>
<forward name="success" path="/good.jsp" />
</global-forwards>
action閮ㄥ垎
<action-mappings>
<action path=“/test/test.jsp" type=“com.cjea.test.testAction" name="testform" scope="request">
<forward name="success" path="/test/good.jsp" />
</action>
<action-mappings>
</struts-config>
ActionServlet
ActionServlet 鏄痵truts妗嗘灦 MVC 瀹炵幇鐨?controller 閮ㄥ垎錛屽畠鏄繖涓妗嗘灦鐨勬牳蹇冦?br>ActionServlet 鍒涘緩騫朵嬌鐢?Action銆丄ctionForm 鍜?ActionForward銆?/p>
ActionServlet鐨勫熀鏈姛鑳?/p>
鎴幏鐢ㄦ埛鐨凥ttp璇鋒眰
鎶婅繖涓姹傛槧灝勫埌鐩稿簲鐨凙ction綾匯?br>鍒涘緩涓涓狝ctionForm bean瀹炰緥,灝唂orm璇鋒眰鏀懼叆formbean鐨勫疄渚嬩腑
璋冪敤Action瀹炰緥鐨刾erform()鏂規硶
灝咥ctioForm bean,Action Mapping瀵硅薄,request鍜宺esponse瀵硅薄浼犵粰Action鐨刾erform()鏂規硶
perform榪斿洖涓涓狝ctionForword瀵硅薄錛屾牴鎹柟娉曟墽琛屾儏鍐佃漿鍒扮浉搴旂殑jsp欏甸潰.
Action Classes
Action 綾繪槸涓氬姟閫昏緫鐨勪竴涓寘瑁呫侫ction 綾葷殑鐢ㄩ旀槸灝?HttpServletRequest 杞崲涓轟笟鍔¢昏緫銆?/p>
ActionForm
ActionForm 緇存姢 Web 搴旂敤紼嬪簭鐨勪細璇濈姸鎬併?br>ActionForm 鏄竴涓娊璞$被錛屽繀欏諱負姣忎釜杈撳叆琛ㄥ崟妯″瀷鍒涘緩璇ョ被鐨勫瓙綾匯?/p>
ActionForm鐨勪嬌鐢?/p>
鍋囧畾鏈変竴涓敱 HTML 琛ㄥ崟璁劇疆鐨?TestActionForm銆係truts 妗嗘灦灝嗘墽琛屼互涓嬫搷浣滐細
媯鏌?TestActionForm鏄惁瀛樺湪錛涘鏋滀笉瀛樺湪錛屽畠灝嗗垱寤鴻綾葷殑涓涓疄渚嬨?br>Struts 灝嗕嬌鐢?HttpServletRequest 涓浉搴旂殑鍩熻緗?TestActionForm鐨勭姸鎬併?br>Struts 妗嗘灦鍦ㄥ皢 TestActionForm浼犻掔粰TestAction 涔嬪墠灝嗘洿鏂板畠鐨勭姸鎬併?
struts-config.xml 鏂囦歡鎺у埗 HTML 琛ㄥ崟璇鋒眰涓?ActionForm 涔嬮棿鐨勬槧灝勫叧緋匯?br>鍙皢澶氫釜璇鋒眰鏄犲皠鍒?TestActionForm 銆?/p>
Struts鏍囪搴?br>Struts妗嗘灦鍖呮嫭鑷畾涔夋爣絳懼簱錛屽畠鍙互鐢?鍦ㄥ緢澶氭柟闈€傚敖綆¤繖浜涘簱騫朵笉瑕佹眰鐢ㄦ 鏋訛紝浣嗕嬌鐢ㄥ畠浠細鏈夊姪浜庣▼搴忕殑寮鍙戙?/p>
Struts鏍囪搴?br>struts-bean taglib錛氬寘鍚湪璁塊棶bean鍜宐ean灞炴ф椂浣跨敤鐨則ag錛屼篃鍖呭惈涓浜涙秷鎭樉紺虹殑tag銆?br>struts-html taglib錛氬寘鍚敤鏉ョ敓鎴愬姩鎬丠TML鐢ㄦ埛鐣岄潰鍜岀獥浣撶殑tag銆?br>struts-logic taglib 錛氬寘鍚殑tag鐢ㄦ潵綆$悊鏍規嵁鏉′歡鐢熸垚杈撳嚭鏂囨湰錛屽拰鍏跺畠涓浜涚敤鏉ユ帶鍒剁殑淇℃伅銆?br>struts-template taglib鍖呭惈鐨則ag鐢ㄦ潵瀹氫箟妯℃澘鏈哄埗銆?/p>
Bean Taglib
鐢ㄤ簬瀹氫箟鏂癰ean銆佽闂産ean鍙婂叾灞炴х殑鏍囪
鍦╯truts-bean.tld涓畾涔変簡瀹冪殑鏍囪搴撴弿榪板櫒
Bean Taglib涓昏鍔熻兘
鍒涘緩鍜屽鍒禸ean鐨勬爣璁?br>鑴氭湰鍙橀噺瀹氫箟鏍囪
bean緲昏瘧鏍囪
娑堟伅鍥介檯鍖栨爣璁?br>Bean澶嶅埗鏍囪 (<bean:define>)
鍙畾涔夋柊bean錛屽彲澶嶅埗鐜版湁bean錛岃繕鍙粠鐜版湁bean澶嶅埗灞炴с?br>瀹氫箟鏂板瓧絎︿覆甯告暟
灝嗙幇鏈夌殑bean澶嶅埗鍒版柊瀹氫箟鐨刡ean瀵硅薄
澶嶅埗鐜版湁bean鐨勫睘鎬ф潵鍒涘緩鏂扮殑bean
<bean:define>鏍囪灞炴э細
Id 鏂板畾涔夌殑bean鑴氭湰鍙橀噺鍚嶇О錛屽繀欏昏緗?br>Type 瀹氫箟寮曞叆鑴氭湰鍙橀噺鐨勭被
Value 涓篿d灞炴у畾涔夌殑鑴氭湰鍙橀噺鍒嗛厤涓涓柊鐨勫璞?br><bean:define>鏍囪灞炴э細
Name 鐩爣bean鐨勫悕縐般傝嫢value灞炴ф病鏈夎緗紝榪欎釜灞炴у氨蹇呴』璁劇疆
property Name灞炴у畾涔夌殑bean鐨勫睘鎬у悕縐幫紝鐢ㄦ潵瀹氫箟鏂扮殑bean
Scope 婧恇ean鐨勪綔鐢ㄥ煙銆傝嫢娌℃湁璁劇疆錛屾悳绱㈣寖鍥存槸浠庨〉浣滅敤鍩熷埌搴旂敤紼嬪簭浣滅敤鍩?br>toScope 鐩爣bean鐨勪綔鐢ㄥ煙銆傝嫢娌℃湁璁劇疆錛岄粯璁ゅ兼槸欏典綔鐢ㄥ煙
涓句緥
瀹氫箟涓涓猙ean:
<bean:define id="test" value="this is a test"/>
婧恇ean鍦ㄩ〉浣滅敤鍩熶腑琚嫹璐濆埌璇鋒眰浣滅敤鍩熶腑鐨勫彟涓涓猙ean:
<bean:define id="targetBean" name="sourceBean"
scope="page" toScope="request"/>
鑴氭湰鍙橀噺鐨勬爣璁?br>浠庡縐嶈祫婧愪腑瀹氫箟鍜岀敓鎴愯剼鏈彉閲忥紝榪欎簺璧勬簮鍖呮嫭cookie,璇鋒眰鍙傛暟錛孒TTP鏍囧ご絳夌瓑銆?br>鑴氭湰鍙橀噺鐨勬爣璁板睘鎬э細
Id 鑴氭湰鍙橀噺鍜岃瀹氫箟鐨勯〉浣滅敤鍩?nbsp; 灞炴х殑鍚嶇О
Name cookie/鏍囧ご/鍙傛暟鐨勫悕縐?br>Value 濡傛灉娌℃湁鍖歸厤鐨刢ookie鎴?nbsp; 鏁板鹼紝灝辮繑鍥炶繖涓睘鎬ф寚 瀹氱殑榛樿鍊?/p>
鑴氭湰鍙橀噺鐨勬爣璁板睘鎬э細
multiple 濡傛灉榪欎釜灞炴ц緗簡浠繪剰涓涓暟鍊鹼紝鎵鏈夊尮閰嶇殑cookie閮戒細琚Н绱茍瀛樺偍鍒頒竴涓狢ookie[](涓涓暟緇?綾誨瀷鐨刡ean閲?nbsp; 鑻ユ棤璁劇疆錛屾寚瀹歝ookie鐨勭涓涓煎皢浣滀負Cookie綾誨瀷鐨勫?br>涓句緥
<bean:cookie id="myCookie" name="userName"/>
鑴氭湰鍙橀噺鍚嶇О鏄痬yCookie錛岀敤鏉ュ垱寤鴻繖涓睘鎬х殑cookie鐨勫悕縐版槸userName銆?br><bean:header id="myHeader" name="Accept-Language"/>
鑴氭湰鍙橀噺鍚嶇О鏄痬yHeader,璇鋒眰鏍囧ご鐨勫悕縐版槸Accept-Language.
涓句緥
<bean:parameter id="myParameter" name="myParameter">
鑴氭湰鍙橀噺鍚嶇О鏄痬yPatameter,瀹冧繚瀛樼殑璇鋒眰鍙傛暟鐨勫悕縐頒篃鏄痬yParameter
閫昏緫鏍囪
Struts閫昏緫鏍囩搴撳寘鍚殑鏍囪鑳藉鏈夋潯浠跺湴浜х敓杈撳嚭鏂囨湰
鍦ㄥ璞¢泦鍚堜腑寰幆浠庤岄噸澶嶅湴浜х敓杈撳嚭鏂囨湰錛屼互鍙婂簲鐢ㄧ▼搴忔祦紼嬫帶鍒?br>瀹冧篃鎻愪緵浜嗕竴緇勫湪JSP欏典腑澶勭悊嫻佺▼鎺у埗鐨勬爣璁?br>閫昏緫鏍囪灝佽鍦ㄦ枃浠跺悕涓簊truts-logic.tld鐨勬爣璁板寘涓?br>閫昏緫鏍囪搴撶殑鍔熻兘
鏉′歡閫昏緫
閲嶅
杞彂/閲嶅畾鍚戝搷搴?br>鏉′歡閫昏緫鏍囪
絎竴綾誨彲浠ユ瘮杈冧笅鍒楀疄浣撲笌涓涓父鏁扮殑澶у皬
絎簩綾誨湪璁$畻鏍囪浣撲箣鍓嶅垽鏂壒瀹氱殑欏圭洰鏄惁瀛樺湪
絎笁綾繪牴鎹ā鏉垮尮閰嶇殑緇撴灉媯鏌ユ爣璁頒綋鐨勫唴瀹?br>絎竴綾繪潯浠墮昏緫鏍囪
<equal> 濡傛灉甯告暟涓庤瀹氫箟鐨勫疄浣撶浉絳夛紝榪斿洖true
<notEqual> 濡傛灉甯告暟涓庤瀹氫箟鐨勫疄浣撲笉鐩哥瓑錛岃繑鍥瀟rue
<greaterEqual> 濡傛灉甯告暟澶т簬絳変簬琚畾涔夌殑瀹炰綋錛岃繑鍥瀟rue
絎竴綾繪潯浠墮昏緫鏍囪
<lessEqual> 濡傛灉甯告暟灝忎簬絳変簬琚畾涔夌殑瀹炰綋錛岃繑鍥瀟rue
<lessThan> 濡傛灉甯告暟灝忎簬琚畾涔夌殑瀹炰綋錛岃繑鍥瀟rue
<greaterThan> 濡傛灉甯告暟澶т簬琚畾涔夌殑瀹炰綋錛岃繑鍥瀟rue
涓句緥
鍒ゆ柇鍚嶄負"name"鐨勮姹傚弬鏁扮殑鍊兼槸鍚︽槸"SomeName"銆?br><logic:equal parameter="name" value="SomeName">
The entered name is SomeName
</logic:equal>
涓句緥
鍒ゆ柇鍦ㄩ〉鐨勪綔鐢ㄥ煙涓槸鍚︽湁涓涓悕涓?bean"鐨刡ean錛屽畠鏈変竴涓猵rop灞炴э紝榪欎釜灞炴х殑鍊兼槸鍚﹀ぇ浜?銆?br>濡傛灉榪欎釜灞炴ц兘澶熻漿鍖栦負鏁板鹼紝灝辮繘琛屾暟鍊兼瘮杈冿紝鍚﹀垯灝辮繘琛屽瓧絎︿覆姣旇緝銆?br><logic:greaterThan name="bean" property="prop" scope="page" value="7">
The value of bean.Prop is greater than 7
</logic:greaterThan>
絎簩綾繪潯浠墮昏緫鏍囪
<logic:present>
<logic:notPresent>
絎笁綾繪潯浠墮昏緫鏍囪
<logic:match>
<logic:notMatch>
閲嶅鏍囪<logic:iterate>
瀹冭兘澶熸牴鎹壒瀹氶泦鍚堜腑鍏冪礌鐨勬暟鐩鏍囪浣撶殑鍐呭榪涜閲嶅鐨勬鏌?br>闆嗗悎鐨勭被鍨?br>java.util.Iterator
java.util.Collection
java.util.Map
java.util.List
鏁扮粍
涓句緥
Strlst鏄竴涓寘鍚瓧絎︿覆鐨凩ist錛岀幇鍦ㄨ灝嗕粬鍐呴儴鐨勫瓧絎︿覆鍏ㄩ兘鏄劇ず鍦ㄦ祻瑙堝櫒閲?br><logic:iterate id="element" name="strlst" indexId="index">
<%錛?String)element)%>
</logic:iterate>
杞彂鏍囪
<logic:forward>鏍囪鑳藉灝嗗搷搴旇漿鍙戠粰閲嶅畾鍚戝埌鐗瑰畾鐨勫叏灞ActionForward涓?br>ActionForward鐨勭被鍨嬪喅瀹氫簡鏄嬌鐢≒ageContext杞彂鍝嶅簲錛岃繕鏄嬌鐢╯endRedirect灝嗗搷搴旇繘琛岄噸瀹氬悜
姝ゆ爣璁板彧鏈変竴涓?name"灞炴э紝鐢ㄦ潵鎸囧畾鍏ㄥ眬ActionForward鐨勫悕縐幫紝渚嬪錛?br><logic:forward name="myGlobalForward"/>
閲嶅畾鍚戞爣璁?br><logic:redirect>鏍囪鏄竴涓兘澶熸墽琛孒TTP閲嶅畾鍚戠殑寮哄ぇ宸ュ叿銆?br>鏍規嵁鎸囧畾鐨勪笉鍚屽睘鎬э紝瀹冭兘澶熼氳繃涓嶅悓鐨勬柟寮忓疄鐜伴噸瀹氬悜銆?br>瀹冭繕鍏佽寮鍙戜漢鍛樻寚瀹氶噸瀹氬悜URL鐨勬煡璇㈠弬鏁般?br>HTML鏍囪
Struts HTML鏍囪鍙互澶ц嚧鍦板垎涓轟互涓嬪嚑涓姛鑳斤細
鏄劇ず琛ㄥ崟鍏冪礌鍜岃緭鍏ユ帶浠?br>鏄劇ず閿欒淇℃伅
鏄劇ず鍏朵粬HTML鍏冪礌
妯℃澘鏍囪
Struts妯℃澘鏍囪鍙互澶ц嚧鍦板垎涓轟互涓嬪嚑涓姛鑳斤細
鎻掑叆鏍囪<template:insert>
鏀劇疆鏍囪<template:put>
鑾峰緱鏍囪<template:get>