<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Loading...

    java .net

    開始學(xué)習(xí)struts2(六)

    前兩天實(shí)踐了關(guān)于攔截器的具體實(shí)現(xiàn),說實(shí)話關(guān)于底層實(shí)現(xiàn)還沒有看明白,看jdk的源碼中的
    public static Class<?> getProxyClass(ClassLoader loader,Class<?>... interfaces)
    方法,好長啊
    迂回一下,今兒看struts2的具體攔截器Interceptor怎么配置
    配置可比自己寫實(shí)現(xiàn)攔截器容易多了
    1、首先寫一個(gè)攔截器類,攔截器類有兩只寫法(目前俺知道的)
    一種是顯示com.opensymphony.xwork2.interceptor.Interceptor接口,com.opensymphony.xwork2.interceptor.Interceptor接口有三個(gè)方法destroy()、init()和String intercept(ActionInvocation actionInvocation),跟過濾器差不多
    這里指出的是init初始化方法將在容器啟動(dòng)是調(diào)用這個(gè)方法。
    package com.test.interceptor;

    /**
    * Created by IntelliJ IDEA.
    * User: Administrator
    * Date: 2009-1-15
    * Time: 16:34:17
    * To change this template use File | Settings | File Templates.
    */
    import com.opensymphony.xwork2.interceptor.Interceptor;
    import com.opensymphony.xwork2.ActionInvocation;

    public class MyInterceptor implements Interceptor{

        public void destroy() {

        }

        public void init() {

        }

        public String intercept(ActionInvocation actionInvocation) throws Exception {

            System.out.println("test intercept begin");
            String result = actionInvocation.invoke();
            System.out.println("test intercept finish");
            return result;
        }
    }

    另一種就是繼承com.opensymphony.xwork2.interceptor.AbstractInterceptor,這是個(gè)抽象類,并實(shí)現(xiàn)了com.opensymphony.xwork2.interceptor.Interceptor接口,分別實(shí)現(xiàn)了init和destroy方法,但什么都沒做,繼承AbstractInterceptor后,實(shí)現(xiàn)intercept方法就行了,
    這里指出的是在intercept方法中執(zhí)行actionInvocation.invoke();執(zhí)行所攔截的action中的方法;
    2、攔截器寫完了剩下就是配置了,這里要用到struts.xml的組織結(jié)構(gòu)<struts>中有<package>包的的概念,包與包之間可以繼承extends,就像子類繼承父類一樣,子類將擁有父類的屬性和配置,我們一般都繼承extends="struts-default",而struts-default定義在struts2-core.jar 中的struts-default.xml中,struts-default包中定義了很多struts2提供的攔截器和攔截器棧(攔截器棧可以包含多個(gè)攔截器或攔截器棧),struts2的好多功能都是實(shí)現(xiàn)在這些攔截器中,其中有個(gè)<default-interceptor-ref name="defaultStack"/>標(biāo)簽定義了默認(rèn)的攔截器,如果<action>配置中沒有攔截器配置,那就調(diào)用默認(rèn)攔截器,如果有攔截器配置,要么同時(shí)加上默認(rèn)攔截器,要么在自己的package中加入設(shè)置默認(rèn)攔截器的標(biāo)簽。
    <package name="capinfo" extends="struts-default">
            <interceptors>
                <interceptor name="myInterceptor" class="com.test.interceptor.MyInterceptor">
                </interceptor>
            </interceptors>
            <action name="HelloWorld"
                class="com.capinfo.struts2.action.HelloWordAction">
                <result>/HelloWorld.jsp</result>
                <interceptor-ref name="myInterceptor"></interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </action>
     
            <!-- Add your actions here -->
        </package>

    posted on 2009-01-16 16:08 閱讀(289) 評(píng)論(0)  編輯  收藏 所屬分類: 學(xué)習(xí)java

    公告

    希望有一天

    我能用鼠標(biāo)雙擊我的錢包

    然后選中一張100元

    按住“ctrl+c”

    接著不停的“ctrl+v”

    嘻嘻~~~笑醒~~~



    導(dǎo)航

    <2009年1月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類(102)

    隨筆檔案(398)

    文章分類

    文章檔案(10)

    有趣網(wǎng)絡(luò)

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲AV日韩AV一区二区三曲| 人成免费在线视频| 日产乱码一卡二卡三免费| 永久免费无码日韩视频| 精品亚洲永久免费精品| 在线观看H网址免费入口| 国产成人精品日本亚洲语音| 亚洲午夜成人精品电影在线观看| 日本视频免费高清一本18| 亚洲一欧洲中文字幕在线| 亚洲?v女人的天堂在线观看| 性xxxx视频免费播放直播| 亚洲综合一区二区三区四区五区| 亚洲伊人久久综合中文成人网| 99re在线视频免费观看| 99亚洲乱人伦aⅴ精品| 亚洲av日韩av无码| 亚洲av无码乱码在线观看野外| 99re6热视频精品免费观看| 美女扒开屁股让男人桶爽免费| 91亚洲国产成人久久精品网站| 国产一区二区三区在线免费观看 | 好吊妞在线成人免费| 国产成人无码精品久久久免费 | 亚洲国产精华液网站w| 在线免费视频一区二区| 人人揉揉香蕉大免费不卡| 精品韩国亚洲av无码不卡区| 亚洲综合激情六月婷婷在线观看 | 亚洲AV无码乱码国产麻豆| 亚洲成a人片在线观看国产| 美女裸身网站免费看免费网站| 伊人免费在线观看| 特级无码毛片免费视频| 亚洲综合色7777情网站777| 亚洲成A人片在线观看无码不卡 | 91香蕉国产线观看免费全集| 一级美国片免费看| 激情无码亚洲一区二区三区| 亚洲国产精品白丝在线观看| 亚洲AV永久无码精品一百度影院 |