自定義攔截器(難點)

一证芭、要實現(xiàn)自定義攔截器就要實現(xiàn)

1晕翠、com.opensympony.xwork2.interceptor.Interceptor接口:

public class Permission implements Interceptor{
    @Override
    public void destroy() {     
    }

    @Override
    public void init() {        
    }

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        System.out.println("進入攔截器喷舀!");
        if (ActionContext.getContext().getSession().get("user") != null) {
            return invocation.invoke();
        } else {
            ActionContext.getContext().put("message", "您還沒有登錄!");
            }
        return "message";
    }
    
}

2淋肾、如果你想對某個Action里面的一些方法進行攔截可以在配置文件下做如下配置:
(注:該配置用了intereptorStack硫麻,將Struts2框架默認的攔截器和自定義的攔截器放在 棧里面)

             <interceptors>
            <!-- 注冊自定義攔截器 -->
            <interceptor name="permission" class="cn.winney.interceptor.Permission"/>
            <interceptor-stack name="permissionStack">
                <!-- 在攔截器棧中導入Struts2框架定義的棧 -->
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="permission"/>
            </interceptor-stack>
         </interceptors>

3、當訪問該Action的任意放方法都會進入攔截器的配置:

<action name="hello_*" class="cn.itcast.action.LoginAction" method="{1}">
            <result name="success">/WEB-INF/index.jsp</result>
            <interceptor-ref name="permissionStack"/>
         </action>

4樊卓、cn.itcast.action.LoginAction下的方法:

public String execute() {
        this.message = "execute";
        return "message";
    }

    public String login() throws IOException {
        String filePath = ServletActionContext.getServletContext().getRealPath("/image");
        System.out.println(filePath);
        if (images != null) {
            File file = new File(filePath);
            if (!file.exists()) {
                file.mkdirs();
            }
            System.out.println(images.length);
            for (int i = 0; i < images.length; i++) {
                File toSave = new File(file, imagesFileName[i]);
                FileUtils.copyFile(images[i], toSave);
            }
        }
        this.message = "login";
        return "message";
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拿愧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子简识,更是在濱河造成了極大的恐慌赶掖,老刑警劉巖感猛,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奢赂,居然都是意外死亡陪白,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門膳灶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咱士,“玉大人,你說我怎么就攤上這事轧钓⌒蚶鳎” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵毕箍,是天一觀的道長弛房。 經(jīng)常有香客問我,道長而柑,這世上最難降的妖魔是什么文捶? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮媒咳,結(jié)果婚禮上粹排,老公的妹妹穿的比我還像新娘。我一直安慰自己涩澡,他們只是感情好顽耳,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著妙同,像睡著了一般射富。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渐溶,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天辉浦,我揣著相機與錄音,去河邊找鬼茎辐。 笑死宪郊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的拖陆。 我是一名探鬼主播弛槐,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼依啰!你這毒婦竟也來了乎串?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤速警,失蹤者是張志新(化名)和其女友劉穎叹誉,沒想到半個月后鸯两,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡长豁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年钧唐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匠襟。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡钝侠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出酸舍,到底是詐尸還是另有隱情帅韧,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布啃勉,位于F島的核電站忽舟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏璧亮。R本人自食惡果不足惜萧诫,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枝嘶。 院中可真熱鬧,春花似錦哑诊、人聲如沸群扶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竞阐。三九已至,卻和暖如春暑劝,著一層夾襖步出監(jiān)牢的瞬間骆莹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工担猛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幕垦,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓傅联,卻偏偏與公主長得像先改,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蒸走,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容