锘??xml version="1.0" encoding="utf-8" standalone="yes"?> <filter> <filter-mapping> <filter-mapping>
鍙戠幇緗戠珯鑰佹槸涓鍔ㄤ笉鍔?鍦―AO涓敤 Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
鏌ョ湅浜嗙粺璁$粨鏋?鍙戠幇鎵撳紑50涓猄ession鍙湁20涓叧闂簡.
鐪嬬粨鏋勪篃娌℃湁浠涔堥棶棰?鎴戜嬌鐢ㄤ袱涓猅hreadLocal 瀛樻斁Session 鍜孴ransaction,鍐嶇敤涓涓狥ilter鍘誨叧闂?鍚勪釜閰嶇疆琛ㄩ潰涓婁篃鏄病鏈夐棶棰?鍙槸鍋氭祴璇曠殑鏃跺欐墠鍙戠幇鍏抽棴Session鐨凢ilter鏍規湰灝辨槸娌℃湁榪愯,鎴栨槸鏈夋椂榪愯,鏈夋椂涓嶈繍琛?
浠旂粏鎯充簡鎯?璋冩暣浜嗕竴涓媠essionclosefilter鍜孲truts2鐨刦ilter鐨勯『搴忓涓?緇堜簬鍙互鍏抽棴浜?/p>
<filter-name>HibernateSessionCloseFiler</filter-name>
<filter-class>com.hitecin.struts2.filter.HibernateSessionClose</filter-class>
</filter>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-name>HibernateSessionCloseFiler</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
]]>
at sun.reflect.GeneratedMethodAccessor196.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:812)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964)
at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:75)
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131)
at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:68)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
at ognl.SimpleNode.setValue(SimpleNode.java:246)
at ognl.Ognl.setValue(Ognl.java:476)
at com.opensymphony.xwork2.util.OgnlUtil.setValue(OgnlUtil.java:186)
at com.opensymphony.xwork2.util.OgnlUtil.internalSetProperty(OgnlUtil.java:360)
at com.opensymphony.xwork2.util.OgnlUtil.setProperty(OgnlUtil.java:135)
at com.opensymphony.xwork2.util.OgnlUtil.setProperty(OgnlUtil.java:116)
at org.apache.struts2.components.Bean.addParameter(Bean.java:147)
at org.apache.struts2.components.Param.end(Param.java:114)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
at _jsp._product._productcatagorysecondlist__jsp._jspService(_productcatagorysecondlist__jsp.java:105)
at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
at com.caucho.jsp.Page.pageservice(Page.java:570)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106)
at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:420)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
at java.lang.Thread.run(Thread.java:595)
榪欎釜閿欒鏈夋椂鍑虹幇錛屾湁鏃舵病鏈夛紝鍙堜粩緇嗙湅浜嗕竴涓嬫簮鐮侊紝鍙戠幇'firmCode'榪欎釜灞炴х殑綾誨瀷鏄痠nt,鎶婂畠鏀逛負Integer...
搴旇娌¢棶棰樹簡錛岃繖鏄疭truts2涓被鍨嬭漿鎹㈢殑闂
]]>
<servlet-mapping url-pattern='/struts/*' servlet-name='plugin_match'/>
<servlet-mapping url-pattern='/other/*' servlet-name='plugin_match'/>
<servlet-mapping url-pattern='*.action' servlet-name='plugin_match'/>
<servlet-mapping url-pattern='*.html' servlet-name='plugin_match'/>
<servlet-mapping url-pattern='*.do' servlet-name='plugin_match'/>
<servlet-mapping url-pattern='/dwr/*' servlet-name='plugin_match'/>
</web-app>
]]>
init();
String param = filterConfig.getInitParameter("packages");
String packages = "org.apache.struts2.static template org.apache.struts2.interceptor.debugging";
if (param != null) {
packages = param + " " + packages;
}
this.pathPrefixes = parse(packages);
}
public void init() {
if (configurationManager == null) {
configurationManager = new ConfigurationManager(BeanSelectionProvider.DEFAULT_BEAN_NAME);//鐢ㄦ潵鍒濆鍖朇onfigurationManager
}
init_DefaultProperties(); // org.apache.struts2.default.properties閰嶇疆鐨刾rovider鍒濆鍖?/span>
init_TraditionalXmlConfigurations(); // struts-default.xml,struts-plugin.xml,struts.xml閰嶇疆鐨刾rovider鍒濆鍖?/span>
init_LegacyStrutsProperties(); //
init_ZeroConfiguration(); //
init_CustomConfigurationProviders(); //
init_MethodConfigurationProvider();
init_FilterInitParameters() ; //
init_AliasStandardObjects() ; //
Container container = init_PreloadConfiguration();
init_CheckConfigurationReloading(container);
init_CheckWebLogicWorkaround(container);
}
2
3
4 HttpServletRequest request = (HttpServletRequest) req;
5 HttpServletResponse response = (HttpServletResponse) res;
6 ServletContext servletContext = getServletContext();
7 ………………………………
8 request = prepareDispatcherAndWrapRequest(request, response);//浣滀簺緙栫爜鍑嗗鍜屼負浜嗕笂浼犳枃浠朵綔鍖呰
9 ActionMapping mapping= actionMapper.getMapping(request, getConfigurationManager()); // 鎶婅姹傚拰閰嶇疆鏂囦歡鎸傚嬀
10
11
12 ……………………………………
13 serviceAction(request, response, servletContext, mapping);//鍒涘緩Action涓婁笅鏂囷紝鏍規嵁緇欏畾鐨刴apping瑁呰澆ActionProxy,鐒跺悗鎸囧畾鐨凙ction鏂規硶琚墽琛岋紝杈撳嚭榪涘叆response
14
15 ActionContextCleanUp.cleanUp(req);//
16 ………………
17 }
18
]]>
]]>
涓.ajax Tag
ajax tag
Ajax Tag | 璇存槑 |
涓庢櫘閫歞iv涓嶅悓鐨勬槸,瀹冨彲浠ラ氳繃ajax鍒鋒柊 | |
浣跨敤ajax鏇存柊鍙﹀涓涓厓绱犳垨鎻愪氦form | |
浣跨敤ajax鏇存柊鐩爣鍏冪礌 | |
涓涓彲浠ュ姞鍏ュ姩鎬佸拰闈欐?s:div> 鐨刾anel | |
浣跨敤ajax鍦ㄧ幇鏈夋暟鎹殑鐨勫熀紜涓婃洿鏂板彟澶栦竴涓厓绱?/td> |
灞炴?/td> | 璧嬪艱鏄?/td> |
href | 鐢ㄦ潵鍙戦佽姹傜殑url |
listenTopics | 浼氬紩鍙戠洰鏍噒ag閲嶆柊杞藉叆鍐呭鎴栧彂鐢熷姩浣?鎸囧畾澶氫釜topics 鏃剁敤閫楀彿闅斿紑 |
notifyTopics | tag鍏紑鐨勪竴涓爣蹇?鎸囧畾澶氫釜topics鏃剁敤閫楀彿闅斿紑 |
showErrorTransportText | 璁劇疆閿欒淇℃伅鏄惁鏄劇ず |
indicator | 鍦╮equest榪涜鏃舵樉紺虹殑涓滀笢 |
鍏充簬Tag鐨勮緇嗚鏄庡彲浠ョ湅API錛岃鍦╯truts2涓嬌鐢╝jax tag鍙鍔犱笂<s:head theme="ajax"/>
鐒跺悗鍦ㄤ嬌鐢ㄧ殑ajax tag涓姞涓妕heme="ajax"灝卞彲浠ヤ簡!
絎﹀彿 | getValue()瑕佹敞鎰忎簨欏?/td> | setValue()娉ㄦ剰浜嬮」 |
e1,e2 欏哄簭榪愮畻絎?/td> | e1鍜宔2閮戒細浣跨敤鍚屼竴涓簮瀵硅薄璁$畻鍊? 涓斾細榪斿洖e2鐨勮綆楀?/td> | getValue浣跨敤e1 setValue浣跨敤e2 |
e1=e2 絳変簬榪愮畻絎?/td> | getValue浣跨敤e2,setValu浣跨敤e1,涓攅2鐨勭粨鏋滀綔涓虹洰鏍囩殑瀵硅薄 | |
e1?e2:e3 | ||
e1||e2,e1 or e2 | ||
e1|e2,e1 bor e2 | ||
e1^e2, e1 xor e2 | ||
e1&e2 ,e1 band e2 | ||
e1==e2,e1 eq e2 e1!=e2, e1 neq e2 |
||
e1<e2,e1 lt e2 e1<=e2 ,e1 lte e2 e1>e2 ,e1 gt e2 e1>=e2 ,e1 get e2 e1 in e2 e1 not in e2 |
||
e1<< e2,e1 shl e2 e1>>e2 ,e1 shr e2 e1>>> e2,e1 ushr e2 |
||
e1+e2 e1-e2 |
||
e1*e2 e1/e2 e1%e2 |
||
+e -e !e ~e e instanceof class |
||
e.method(args) e.property e1[e2] e1.{e2} e1.{?e2} 閫夋嫨 e1.(e2) 瀛愯〃杈懼紡鐨勮綆?br>e1(e2) 琛ㄨ揪寮忚綆?/td> | ||
constant 甯擱噺 (e) 灝嗚〃杈懼紡鍔犲叆鎷彿鍐?br>method(args) 鏂規硶璋冪敤 property 灞炴ц皟鐢? [e] 閫氳繃绱㈠紩寰楀埌鍊?br>{ e,.....} 鍒涘緩List #variable 涓婁笅鏂囦腑鍙橀噺鐨勫紩鐢?br>@class@method (args) 闈欐佹柟娉曡皟鐢?br>@ class@field 闈欐佸瓧孌佃皟鐢?br>new class(args) 鏋勯犲櫒璋冪敤 new array-component-class[] {e,....} 鏁扮粍鍒涘緩 #{e1:e2,...} Map鍒涘緩 #@classname@{e1:e2,....} 鍒涘緩鎸囧畾Map瀛愮被鍨嬬殑Map :[e] Lambda琛ㄨ揪寮?br> |
榪欎簺鏄渶鍩虹鐨勮繍綆楃 |
涓斾竴涓狾GNL琛ㄨ揪寮忓彲浠ヨ繘琛屽瓨鍜屽彇涓ゆ柟闈㈢殑鎿嶄綔.
1).浣跨敤OGNL鐨勫ソ澶?/strong>
鏈哄埗鍙互鏇村鏄撳疄鐜板肩被鍨嬬殑鐨勮漿鎹?
2).OGNL琛ㄨ揪寮?/strong>
OGNL浣跨敤闆嗗悎
浣跨敤Collection涓殑鍏冪礌欏葷敤绱㈠紩,濡?寰楀埌array涓涓涓厓绱犺〃杈懼紡涓篴rray[0]
List
渚嬪瓙: name in{null,"init"} 榪欎釜渚嬪瓙 褰搉ame灞炴ф槸 絀烘垨"init"榪斿洖true ,
鑰屽湪榪欎釜榪囩▼涓細鍒涘緩List鎺ュ彛鐨勪竴涓疄渚?鍏蜂綋鐨勫瓙綾繪病鏈夋寚瀹?/p>
鏈湴Arrays OGNL鏀寔鍒涘緩Java鏈湴鏁扮粍! 涓斿厑璁哥粰瀹氬瓨鍦ㄧ殑list鎴栬瀹氭暟緇勭殑鐨勫ぇ灝?/p>
new int[] {1,2,3} 鍒涘緩涓涓猧nt 鏁扮粍
new int[5] 鍒涘緩浜嗕竴涓猧nt鏁扮粍,瀹冪殑鍏冪礌鐨勫間負0
Maps 鍒涘緩Map #{"foo":"fool value","bar":"bar value"}
鎴戜滑鐢氳嚦鍙互鎸囧畾涓涓壒瀹氱殑java Map Class 鍘誨垱寤篗ap
#@java.util.LinkedHashMap@{"foo":"foo value","bar":bar value"};
Java Collection鍚勮嚜鏈変竴浜涚壒孌婄殑灞炴?/p>
Collection | Special Properties |
Collection(瀛愮被鏈塎ap List Set) | size 闆嗗悎鐨勫ぇ灝?br>isEmpty 濡傛灉闆嗗悎涓虹┖鍊間負true |
List | iterator 寰楀埌姝ist鐨勮凱浠e櫒 |
Map | keys 寰楀埌涓涓寘娑墊墍鏈夐敭鍊肩殑Set values 寰楀埌涓涓寘鎷墍鏈夊肩殑Collection |
Set | iterator 寰楀埌姝et鐨勮凱浠e櫒 |
Iterator | next 寰楀埌闆嗗悎涓殑涓嬩竴涓猳bject hasNext濡傛灉闆嗗悎涓湁涓嬩竴涓猳bject鍒欒繑鍥瀟rue |
Enumeration | next 濡備笂 hasNext濡備笂 nextElement 鍜宯ext涓鏍風殑浣滅敤 hasMoreElements鍜宧asNext涓鏍蜂綔鐢?/td> |
OGNL璋冪敤JavaBean 绱㈠紩灞炴?/strong>
JavaBean绱㈠紩灞炴х殑鏍煎紡濡備笅
public PropertyType[] getPropertyName()
public void setPropertyName(propertyType[] anArray)
public PropertyType getPropertyName(int index);
public void setPropertyName(int index,PropertyType value)
OGNL鍙互寰堝鏄撳湴閫氳繃绱㈠紩瀛樺彇榪欎簺灞炴? Example
someProperty[2]
鍦ㄨ繖涓緥瀛愪腑OGNL浼氳嚜鍔ㄦ壘鍒癵etSomeProperty(2)鎴栧瓨鍒皊etSomeProperty (2,value)涓?
璋冪敤OGNL瀵硅薄绱㈠紩灞炴?/strong>
瀵硅薄绱㈠紩灞炴ф牸寮?/p>
public PropertyType getPropertyName(IndexType index)
public void setPropertyName(IndexType index,PropertyType value)
PropertyType 鍜孖ndexType 蹇呴渶璺熼泦鍚堝拰get鏂規硶涓殑綾誨瀷鐩擱厤
璋冪敤鏂規硶
OGNL璋冪敤鏂規硶鍜孞ava璋冪敤鏂規硶鏈変竴鐐瑰尯鍒?鍥犱負OGNL鏄瑙i噴鐨勫茍涓斿繀闇鍦ㄨ繍琛屾椂閫夋嫨姝g‘鐨勬柟娉?鎵浠GNL璋冪敤鏂規硶鏃墮櫎浜嗘彁渚涙墍闇瑕佸弬鏁版病鏈夐澶栫殑綾誨瀷淇℃伅,OGNL閫夋嫨鍜屾彁渚涚殑鍙傛暟鏈閰嶇殑鏂規硶,濡傛灉鏈変袱涓垨鏇村鐨勬柟娉曠鍚堝尮閰?瀹冧滑涓殑涓涓細浠繪剰鐨勮閫夋嫨(鍦╓ebWork涓細閫夋嫨ValueStack涓婇潰鐨勬柟娉?
鐗瑰埆涓鎻愮殑鏄?,null鍙互鍖歸厤鎵鏈夐潪鍩虹綾誨瀷,鎵鏈夊畠閫氬父浼氬鑷翠竴涓笉紜畾鐨勬柟娉曡璋冪敤
鍙橀噺鐨勮皟鐢?/strong>
OGNL鏈変竴涓畝鍗曠殑鍙橀噺閰嶇疆,鍦ㄨ繖鍎夸綘鍙互瀛樺偍涓棿鍊煎拰閲嶆柊浣跨敤榪欎簺涓棿鍊?鎴栬呬粎浠呭懡鍚嶄互浣胯〃杈懼紡鏇存槗鐞嗚В! 鍦∣GNL涓墍鏈夊彉閲忛兘鏄叏灞鐨?浣跨敤鍙橀噺鐨勬牸寮忔槸"#variable"
OGNL鎶婂綋鍓嶇殑object鍦ㄦ瘡鐐圭殑琛ㄨ揪寮忓煎瓨鏀懼湪"this"榪欎釜鍙橀噺涓?鑰屼笖"this"鍙互鍍忓叾瀹冨彉閲忎竴鏍蜂嬌鐢?渚?
listeners.size().(#this>100?2*this:20+#this) 濡傛灉listeners涓殑鍏冪礌澶т簬100浼氳繑鍥炲厓绱犳暟閲忕殑涓ゅ?鍚﹀垯鏁伴噺鍔犱笂20
鍙互鏄懼紡鍦扮粰鍙橀噺璧嬪?鍙鍦ㄥ彉閲忕殑鍚庤竟鍐欎竴涓〃杈懼紡鍗沖彲
#var -99
Powered by ScribeFire.