锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成人直播,国产精品一区二区在线观看,欧美另类网站http://www.aygfsteel.com/rebeidian/archive/2012/08/08/385081.html榪艦鍜?/dc:creator>榪艦鍜?/author>Wed, 08 Aug 2012 08:54:00 GMThttp://www.aygfsteel.com/rebeidian/archive/2012/08/08/385081.htmlhttp://www.aygfsteel.com/rebeidian/comments/385081.htmlhttp://www.aygfsteel.com/rebeidian/archive/2012/08/08/385081.html#Feedback0http://www.aygfsteel.com/rebeidian/comments/commentRss/385081.htmlhttp://www.aygfsteel.com/rebeidian/services/trackbacks/385081.html鎷︽埅鍣紙Interceptor錛夛細鎷︽埅鍣ㄦ槸Struts2鐨勬牳蹇冿紝Struts2鐨勪紬澶氬姛鑳介兘鏄氳繃鎷︽埅鍣ㄦ潵瀹炵幇鐨勩?br />

鎷︽埅鍣ㄨ窡filter鐨勬蹇墊槸闈炲父綾諱技鐨?鎷︽埅鍣ㄥ彧鑳芥嫤鎴狝ction鐨?鑰宖ilter鏄彲浠ヨ繃婊ゆ墍鏈夌殑涓滆タ鐨?An interceptor is a stateless class that follows the interceptor pattern, as found inFilter and in AOP languages.


Interceptors must be stateless(鏃犵姸鎬佺殑) and not assume that a new instance will be created for each request or Action鏄崟瀹炰緥鐨?

鎷︽埅鍣ㄧ殑緙栧啓鏈変袱姝?涓涓槸緙栧啓浠g爜,絎簩涓槸緙栧啓閰嶇疆鏂囦歡.

鑷畾涔夌殑鎷︽埅鍣ㄨ瀹炵幇Interceptor鎺ュ彛ActionInvocation鐨刬nvoke鏂規硶灝辯被浼間簬filter鐨刣ofilter

閰嶇疆鏂囦歡涓敤<interceptors>涓繘琛岄厤緗?娉ㄦ剰鎷︽埅鍣ㄧ殑init鏂規硶涔熸槸鍦ㄦ湇鍔″櫒涓鍚姩鐨勬椂鍊欏氨璋冪敤鐨?璺焒ilter涓鏍風殑.鏁翠釜struts閮芥槸闈犺繖浜涙嫤鎴櫒鎵涓茶仈璧鋒潵鐨?鎴戜滑騫舵病鏈夊湪action閲岄潰閰嶇疆涔熸病闂鍟?鍥犱負浠栨湁涓粯璁ょ殑鎷︽埅鍣ㄦ爤鍢?鏄氳繃 <default-interceptor-ref name="defaultStack"/>鏉ユ寚瀹氱殑.

娉ㄦ剰:涓鏃﹀畾涔変簡鑷繁鐨勬嫤鎴櫒錛屽皢鍏墮厤緗埌action涓婂悗錛屾垜浠渶瑕佸湪action鐨勬渶鍚庡姞涓婇粯璁ょ殑鎷︽埅鍣ㄦ爤錛歞efaultStack銆傚洜涓鴻嚜宸辯殑浼氳鐩栭粯璁ょ殑.

鎷︽埅鍣ㄤ篃鍙互璺焒ilter涓鏍烽厤緗畃aram,鐒跺悗鍦ㄧ▼搴忛噷闈㈠彲浠ユ妸瀹冭鍑烘潵.鍦ㄧ▼搴忎腑瀹冪敤setter鏂規硶set榪涘幓鐨?

濡?

<interceptor name="theInterceptor1" class="cn.wenping.interceptor.TheInterceptor1">

<param name="test">wenp</param>
      </interceptor>

鎷︽埅鍣ㄥ畾涔夊涓?

public class TheInterceptor1 implements Interceptor {

private String test;


public String getTest() {
return test;
}


public void setTest(String test) {
this.test = test;
}

.............

..............

}

瀹氫箟鎷︽埅鍣ㄦ椂鍙互鐩存帴緇ф壙AbstractInterceptor鎶借薄綾?/span>錛堣綾誨疄鐜頒簡Interceptor鎺ュ彛錛屽茍涓斿init鍜宒estroy鏂規硶榪涜浜嗙┖瀹炵幇錛夛紝鐒跺悗瀹炵幇鍏舵娊璞℃柟娉昳ntercept鍗沖彲,瀹為檯涓婂氨鏄竴涓傞厤鍣?br />

娉ㄦ剰:浠ヤ笂璇寸殑榪囨護Action瀹為檯涓婃槸榪囨護浠栫殑execute鏂規硶,濡傛灉瑕佸鎸囧畾鐨勬柟娉曡繘琛屾嫤鎴敤:MethodFilterInterceptor,姝ゅ嵆鏂規硶榪囨護鎷︽埅鍣紙鍙互瀵規寚瀹氭柟娉曡繘琛屾嫤鎴殑鎷︽埅鍣級銆?/p>

閲囩敤鐨勬槸涓嬮潰涓ょparam榪涜閰嶇疆

 

  • excludeMethods - method names to be excluded from interceptor processing
  • includeMethods - method names to be included in interceptor processing  
閰嶇疆濡備笅:濡傛灉鐢ㄥ涓嬮厤緗?閭d箞myExecute鏂規硶鍦ˋction涓榪涜method鏂規硶鐨勯厤緗?br />

 

<interceptor-ref name="theInterceptor3">
<param name="includeMethods">myExecute</param>
</interceptor-ref>

娉ㄦ剰:鍦ㄦ柟娉曡繃婊ゆ嫤鎴櫒涓紝濡傛灉鏃㈡病鏈夋寚瀹歩ncludeMethods鍙傛暟錛屼篃娌℃湁鎸囧畾execludeMethods鍙傛暟錛岄偅涔堟墍鏈夌殑鏂規硶閮戒細琚嫤鎴紝涔熷氨鏄鎵鏈夌殑鏂規硶閮借璁や負鏄痠ncludeMethods鐨勶紱濡傛灉浠呬粎鎸囧畾浜唅ncludeMethods錛岄偅涔堝彧浼氭嫤鎴猧ncludeMethods涓殑鏂規硶錛屾病鏈夊寘鍚湪includeMethods涓殑鏂規硶灝變笉浼氳鎷︽埅銆?/p>


鍏充簬鎷︽埅鍣ㄤ腑鐨勭洃鍚櫒:

ActionInvocation涓殑鏂規硶:addPreResultListener

PreResultListeners may be registered with anActionInvocation to get a callback after theAction has been executed but before theResult is executed.

浠栬搗鐨勪綔鐢ㄥ氨鏄?濡傛灉浣犳兂鍦ˋction鐨勬柟娉曟墽琛屽畬姣曚箣鍚庡湪緇撴灉榪斿洖涔嬪墠鎯寵鍋氱偣涓滆タ鐨勮瘽灝卞彲浠ョ敤瀹冧滑.



]]>
主站蜘蛛池模板: 宁远县| 通州区| 丰顺县| 鄂托克前旗| 揭西县| 临澧县| 罗田县| 房产| 岳阳县| 宕昌县| 宁海县| 清远市| 桐柏县| 南丹县| 长岭县| 黔西县| 南部县| 贡嘎县| 全州县| 盱眙县| 和龙市| 辛集市| 买车| 资中县| 当雄县| 安多县| 土默特左旗| 当涂县| 南郑县| 上思县| 阿克| 遵义市| 海盐县| 南木林县| 泰兴市| 德阳市| 武义县| 乐平市| 米易县| 永平县| 永福县|