JSP Struts涔?/strong>HTML鏍囩搴撹瑙?/strong>
Struts鎻愪緵浜嗕簲涓爣絳懼簱錛屽嵆錛欻TML銆丅ean銆丩ogic銆乀emplate鍜孨ested銆?
鏍囩搴?/p> |
璇存槑 |
HTML 鏍囩 |
鐢ㄦ潵鍒涘緩鑳藉鍜孲truts 妗嗘灦鍜屽叾浠栫浉搴旂殑HTML 鏍囩浜や簰鐨凥TML 杈撳叆琛ㄥ崟 |
Bean 鏍囩 |
|
Logic 鏍囩 |
綆$悊鏉′歡浜х敓鐨勮緭鍑哄拰瀵硅薄闆嗕駭鐢熺殑寰幆 |
Template 鏍囩 |
闅忕潃Tiles妗嗘灦鍖呯殑鍑虹幇錛屾鏍囪宸插紑濮嬪噺灝戜嬌鐢?/p> |
Nested 鏍囩 |
澧炲己瀵瑰叾浠栫殑Struts 鏍囩鐨勫祵濂椾嬌鐢ㄧ殑鑳藉姏 |
鏍囩鐨勫叕鍏辯壒寰?/strong>
浣跨敤鍥哄畾灞炴у悕縐扮殑Struts 鏍囩錛?/p>
灞炴?/p> |
璇存槑 |
id |
鍛藉悕鑷畾涔夋爣絳懼垱寤烘椂鐨勮剼鏈彉閲忓悕銆?/p> |
name |
鎸囧嚭鍏抽敭瀛楀鹼紝鍦ㄨ鍏抽敭瀛椾笅鍙互鎵懼埌涓涓瓨鍦ㄧ殑bean 銆傚鏋滅粰鍑轟簡scope灞炴э紝鍒欎粎浠呭湪scope涓煡鎵俱傚惁鍒欙紝鏍規嵁鏍囧噯鐨勯『搴忓湪鍚勭scope涓煡鎵撅細(page, request, session, or application)銆?/p> |
property |
鎸囧嚭bean 涓殑鏌愪釜灞炴э紝鍙互鍦ㄥ叾涓绱㈠箋傚鏋滄病鏈夋爣鏄庯紝鍒欎嬌鐢ㄥ璞℃湰韜殑鍊箋?/p> |
scope |
瀹氫箟浜咮ean鍦ㄥ摢涓寖鍥?page, request, session, or application)涓鏌ユ壘銆傚鏋滄病鏈夋爣鏄庢寜欏哄簭鏌ユ壘銆傝剼鏈彉閲?瑙乮d)灝嗗湪鐩稿悓鐨勮寖鍥翠腑鍒涘緩銆?/p> |
Struts 鏍囩涔熸敮鎸佸祵濂楀紩鐢紝渚嬪錛?/p>
Property="foo.bar.baz" |
铏界劧Struts 鏍囩鐨勮璁″師鎰忔槸涓轟簡閬垮厤浣跨敤scriptlet錛宻criptlet鐨勮〃杈懼紡榪樿兘澶熸彁渚涚粰鎵鏈夌殑Struts 鏍囩浣跨敤銆備絾璇風‘淇濅嬌鐢ㄥ畬鏁寸殑琛ㄨ揪寮?
閿欒錛?br />
<html:link href="'<%= "/" + name %>/index.jsp>'> |
Html 鏍囩搴?/strong>
<!--[if !supportLists]-->1. <!--[endif]--><html>鏍囩
瀹冩湁涓や釜灞炴э細locale鍜寈html錛屼袱鑰呴兘涓嶆槸蹇呴渶鐨勩?/p>
<html:html locale=\"true\"> |
<!--[if !supportLists]-->2. <!--[endif]-->璇存槑錛氱敓鎴愮殑緇撴灉鍙栧喅浜嶴truts搴旂敤紼嬪簭鎵浣嶄簬鐨勬湇鍔″櫒鐨刲ocale銆傚鏋滀綘灝嗗簲鐢ㄧ▼搴忛儴緗插埌涓涓笉鍚宭ocale鐨勬湇鍔″櫒錛屼綘涓嶉渶瑕佹敼鍙樹唬鐮侊紝Locale浼氳嚜鍔ㄨ皟鏁淬?
<!--[if !supportLists]-->3. <!--[endif]--><base>鏍囩錛氳〃紺烘墍鍖呭惈欏甸潰鐨勭粷瀵逛綅緗傝繖涓爣絳懼彧鏈夊唴宓屽湪head鏍囩涓墠鏈夋晥銆?/p>
<html:base/> |
<!--[if !supportLists]-->4. <!--[endif]--><img>鏍囩
鏈閲嶈鐨勫睘鎬age錛氬浘璞℃枃浠剁殑璺緞錛屽墠闈㈠繀欏誨甫鏈変竴涓枩綰褲?br />
鍏跺畠灞炴э細heignt銆亀idth銆乤lt銆?/p>
<html:img page=\"/logo.gif\" height=\"50\" width=\"200\" alt=\"Web Logo\"/> |
<!--[if !supportLists]-->5. <!--[endif]--><link>鏍囩
<html:link page=\"/index.html\">Click demo</html:link> |
<!--[if !supportLists]-->6. <!--[endif]--><errors>鏍囩錛氶氳繃涓涓畝鍗曠殑<html:errors/>鏍囩錛屼綘灝卞彲浠ュ湪涓涓狫SP欏甸潰涓婃樉紺哄畬鍏ㄨ嚜瀹氫箟鐨勯敊璇俊鎭傚姛鑳借秴寮哄ぇ錛侊紒
璇存槑錛氳繖涓爣絳懼湪Request瀵硅薄鐨勫睘鎬ч泦鍚堜腑鏌ユ壘reserved key銆傚鏋滃畠鎵懼埌涓涓猺eserved key錛屽畠灝卞亣璁捐繖涓猭ey鏄竴涓猄tring銆佹垨鏄竴涓猄tring鏁扮粍
錛堝畠鍖呭惈鍦ㄦā鍧楃殑MessageResources涓煡鎵劇殑message keys錛夈佹垨鏄被鍨嬩負org.apache.struts.action.ActionErrors鐨勪竴涓璞°?br />
濡傛灉鍦ㄥ簲鐢ㄧ▼搴忚祫婧愪腑瀛樺湪鐩稿簲鐨勪俊鎭紝閭d箞灝卞彲浠ョ敤涓嬮潰榪欎簺鍙夌殑message keys錛?nbsp;
· errors.header or errors.prefix錛氱浉搴旂殑淇℃伅鍦ㄩ敊璇俊鎭殑鍗曠嫭鍒楄〃鍓嶆樉紺恒?nbsp;
· errors.footer or errors.suffix錛氱浉搴旂殑淇℃伅鍦ㄩ敊璇俊鎭殑鍗曠嫭鍒楄〃鍚庢樉紺恒?
<!--[if !supportLists]-->7. <!--[endif]--><form>鏍囩緋誨垪
浣跨敤<form>鏍囩鏃跺繀欏婚伒寰竴浜涜鍒欙細
<html:form action=\"/login\" > |
<!--[if !supportLists]-->2. <!--[endif]--><!--[if !supportEmptyParas]--> <!--[endif]-->
<!--[if !supportLists]-->3. <!--[endif]-->浠諱綍鍖呭惈鍦?lt;form>涓敤鏉ユ帴鏀剁敤鎴瘋緭鍏ョ殑鏍囩錛?lt;text>銆?lt;password>銆?lt;hidden>銆?lt;textarea>銆?lt;radio>銆?lt;checkbox>銆?lt;select>錛夊繀欏誨湪鐩稿叧鐨刦orm bean涓湁涓涓寚瀹氱殑灞炴у箋傛瘮濡傦紝濡傛灉浣犳湁涓涓睘鎬у艱鎸囧畾涓?#8220;username”鐨?lt;text>鏍囩錛岄偅涔堢浉鍏崇殑form bean涓篃蹇呴』鏈変竴涓悕涓?#8220;username”鐨勫睘鎬с傝緭鍏?lt;text>鏍囩涓殑鍊間細琚敤浜庣敓鎴恌orm bean鐨剈serName灞炴с?/p>
<form>鏍囩榪樻湁涓浜涗笉鏄繀欏諱絾寰堟湁鐢ㄧ殑“嬈¤”灞炴с?br />
姣斿錛屼綘鍙互鐢╢ocus灞炴ф潵鐢熸垚JavaScript錛屽畠浼?#8220;瀹氱劍”錛坒ocus錛夊埌璇orm鎵鍖呭惈鐨勪竴涓厓绱犱笂銆備嬌鐢╢ocus灞炴ф椂浣犻渶瑕佺粰瀹冩寚瀹氬厓绱犵殑鍚嶇О銆?/p>
<body> |
鏈夋病鏈夌湅鍒拌繖涓爣絳懼簱鏄浣曞緩绔婮avaScript鏉ュ畾鐒﹀埌password鍏冪礌涓婄殑? 榪欎篃鏄搴撹浜虹潃榪風殑鍦版柟涔嬩竴銆備綘涓嶇敤鎷呭績濡備綍鍦ㄥ鎴風榪涜緙栫▼錛屽畠浼氬府浣犺嚜鍔ㄧ敓鎴愩?br />
榪樺彲浠ョ湅鍒幫紝<form>鏍囩涓璵ethod灞炴х殑緙虹渷鍊兼槸POST銆?/p>
璇ユ爣絳炬槸鐢ㄦ潵鍒ゆ柇鏄惁涓虹┖鐨勩傚鏋滀負絀猴紝璇ユ爣絳句綋涓祵鍏ョ殑鍐呭灝變細琚鐞嗐傝鏍囩鐢ㄤ簬浠ヤ笅鎯呭喌錛?/p>
1錛夊綋Java瀵硅薄涓簄ull鏃訛紱
2錛夊綋String瀵硅薄涓?"鏃訛紱
3錛夊綋java.util.Collection瀵硅薄涓殑isEmpty()榪斿洖true鏃訛紱
4錛夊綋java.util.Map瀵硅薄涓殑isEmpty()榪斿洖true鏃躲?br />
<logic:empty name="user">
...
</logic:empty>
璇ュ彞絳夊悓浜庯細
if (user.isEmpty()) {
...
}
2. logic:notEmpty
璇ユ爣絳劇殑搴旂敤姝eソ鍜宭ogic:empty鏍囩鐩稿弽錛岀暐銆?br />
3. logic:equal
璇ユ爣絳句負絳変簬姣旇緝絎︺?br />
eg1. 姣旇緝鐢ㄦ埛鐨勭姸鎬佸睘鎬ф槸鍚?錛岃嫢涓?錛岃緭鍑?鍚敤";
<logic:equal name="user" property="age" value="18">
宸茬粡鎴愬勾
</logic:equal>
eg2. 濡傛灉涓婁緥涓殑value鍊兼槸鍔ㄦ佽幏寰楃殑錛屼緥濡傞渶瑕侀氳繃bean:write杈撳嚭錛屽洜struts涓嶆敮鎸佹爣絳懼祵濂楋紝鍙噰鐢‥L鏉ヨВ鍐寵闂銆?br />
<logic:equal name="user" property="age" value="${user.age}">
......
</logic:equal>
4. logic:notEqual
璇ユ爣絳炬剰涔変笌logic:equal鐩稿弽錛屼嬌鐢ㄦ柟娉曠被浼鹼紝鐣ャ?br />
5. logic:forward
璇ユ爣絳劇敤浜庡疄鐜伴〉闈㈠鍚戯紝鏌ユ壘閰嶇疆鏂囦歡鐨勫叏灞forward銆?br />
eg. <logic:forward name="login"/>
6. logic:greaterEqual
涓哄ぇ浜庣瓑浜庢瘮杈冪銆?br />
eg. 褰撴煇浜虹殑騫撮緞澶т簬絳変簬18鏃訛紝杈撳嚭“宸茬粡鎴愬勾”錛?br />
<logic:greaterEqual name="user" property="age" value="18">
宸茬粡鎴愬勾
</logic:greaterEqual>
7. logic:greaterThan
姝や負澶т簬姣旇緝絎︼紝浣跨敤鏂規硶鍚宭ogic:greaterEqual錛岀暐;
8. logic:lessEqual
姝や負灝忎簬絳変簬姣旇緝絎︼紝浣跨敤鏂規硶鍚宭ogic:greaterEqual,鐣?
9. logic:lessThan
姝や負灝忎簬姣旇緝絎︼紝浣跨敤鏂規硶鍚宭ogic:greaterEqual,鐣?
10. logic:match
姝ゆ爣絳炬瘮杈冨璞℃槸鍚︾浉絳夛紱
eg1. 媯鏌ュ湪request鑼冨洿鍐呯殑name灞炴ф槸鍚﹀寘鍚?laoding"涓詫細
<logic:match name="name" scope="request" value="laoding">
<bean:write name="name"/>涓湁涓涓?#8220;laoding”涓層?br />
</logic:match>
eg2. 媯鏌ュ湪request鑼冨洿鍐呯殑name灞炴ф槸鍚﹀凡“laoding”浣滀負璧峰瀛楃涓詫細
<logic:match name="name" scope="request" value="laoding" location="start">
<bean:write name="name"/>浠?#8220;laoding”浣滀負璧峰瀛楃涓層?br />
</logic:match>
eg3.
<logic:match header="user-agent" value="Windows">
浣犺繍琛岀殑鏄疻indows緋葷粺
</logic:match>
11. logic:notMatch
姝ゆ爣絳劇敤浜庢瘮杈冨璞℃槸鍚︿笉鐩稿悓錛屼笌logic:match鎰忎箟鐩稿弽錛屼嬌鐢ㄦ柟娉曠被浼鹼紝鐣ャ?br />
12. logic:messagePresent
璇ユ爣絳劇敤浜庡垽鏂瑼ctionMessages/ActionErrors瀵硅薄鏄惁瀛樺湪錛?br />
eg. 濡傛灉瀛樺湪error淇℃伅錛屽皢鍏跺叏閮ㄨ緭鍑猴細
<logic:messagePresent property="error">
<html:messages property="error" id="errMsg" >
<bean:write name="errMsg"/>
</html:messages>
</logic:messagePresent >
13. logic:messagesNotPresent
璇ユ爣絳劇敤浜庡垽鏂瑼ctionMessages/ActionErrors瀵硅薄鏄惁涓嶅瓨鍦?浣跨敤鏂規硶涓巐ogic:messagePresent綾諱技錛岀暐
14. logic:present
姝ゆ爣絳劇敤浜庡垽鏂璻equest瀵硅薄浼犻掑弬鏁版槸鍚﹀瓨鍦ㄣ?br />
eg1. user瀵硅薄鍜屽畠鐨刵ame灞炴у湪request涓兘瀛樺湪鏃訛紝杈撳嚭鐩稿簲瀛楃涓詫細
<logic:present name="user" property="name">
user瀵硅薄鍜岃瀵硅薄鐨刵ame灞炴ч兘瀛樺湪
</logic:present>
eg2. 鑻ユ湁涓涓悕瀛椾負“user”鐨凧avaBean錛岃緭鍑哄搴斿瓧絎︿覆錛?br />
<logic:present name="user" >
鏈変竴涓悕瀛椾負“user”鐨凧avaBean銆?br />
</logic:present>
eg3.
<logic:present header="user-agent">
we got a user-agent header.
</logic:present>
15. logic:notPresent
姝ゆ爣絳劇敤浜庡垽鏂璻equest瀵硅薄浼犻掑弬鏁版槸鍚︿笉瀛樺湪錛屾剰涔変笌浜唋ogic:present鐩稿弽錛屼嬌鐢ㄦ柟娉曠被浼鹼紝鐣ャ?br />
16. logic:redirect
璇ユ爣絳劇敤浜庡疄鐜伴〉闈㈣漿鍚戯紝鍙紶閫掑弬鏁般?br />
eg1. <logic:redirect href="http://www.tkk7.com/laoding"/>
17. logic:iterator
鐢ㄤ簬鏄劇ず鍒楄〃涓篶ollection鐨勫鹼紙List ,ArrayList,HashMap絳夛級銆?br />
eg1. 閫愪竴杈撳嚭鐢ㄦ埛鍒楄〃(userlList)涓敤鎴風殑濮撳悕錛?br />
<logic:iterate id="user" name="user">
<bean:write name="user" property="name"/><br>
</logic:iterate>
eg2. 浠庣敤鎴峰垪琛ㄤ腑杈撳嚭浠?寮濮嬬殑涓や釜鐢ㄦ埛鐨勫鍚?br />
<logic:iterate id="user" name="user" indexId="index" offset="1" length="2">
<bean:write name="index"/>.<bean:write name="user" property="name"/><br>
</logic:iterate>
eg3. logic:iterator鏍囩鐨勫祵濂?br />
<logic:iterate id="user" indexId="index" name="user">
<bean:write name="index"/>. <bean:write name="user" property="name"/><br>
<logic:iterate id="address" name="user" property="addressList" length="3" offset="1">
<bean:write name="address"/><br>
</logic:iterate>
</logic:iterate>