【Struts2(四)】控制器&其他OGNL標籤&攔截器
阿新 • • 發佈:2018-11-15
1.2 Struts2的攔截器
1.2.1 攔截器概述
1.2.1.1 什麼是攔截器
Interceptor:攔截器,起到攔截Action的作用。
Filter:過濾器,過濾從客戶端向伺服器傳送的請求。
Interceptor:攔截器,攔截是客戶端對Action的訪問。更細粒度化的攔截。(攔截Action中的具體的方法)。
Struts2框架核心的功能都是依賴攔截器實現。
1.2.1.2 Struts2的執行流程
客戶端向伺服器傳送一個Action的請求,執行核心過濾器(doFilter)方法。在這個方法中,呼叫executeAction()方法,在這個方法內部呼叫dispatcher.serviceAction();在這個方法內部建立一個Action代理,最終執行的是Action代理中的execute(),在代理中執行的execute方法中呼叫ActionInvocation的invoke方法。在這個方法內部遞迴執行一組攔截器(完成部分功能),如果沒有下一個攔截器,就會執行目標Action,根據Action的返回的結果進行頁面跳轉。
1.2.2 攔截器入門
1.2.2.1 搭建Struts2的環境
1.2.2.2 編寫攔截器類
編寫一個類實現Interceptor介面或者繼承AbstractInterceptor類。
1.2.2.3 對攔截器進行配置
定義攔截器進行配置
定義一個攔截器棧的方式
1.3 CRM的許可權攔截器
1.3.1 實現使用者登入的功能
1.3.1.1 建立表和實體
建立表
CREATE TABLE `sys_user` ( `user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '使用者id', `user_code` varchar(32) NOT NULL COMMENT '使用者賬號', `user_name` varchar(64) NOT NULL COMMENT '使用者名稱稱', `user_password` varchar(32) NOT NULL COMMENT '使用者密碼', `user_state` char(1) NOT NULL COMMENT '1:正常,0:暫停', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
建立實體
1.3.1.2 提交資料到Action
1.3.1.3 Action —> Service —> DAO
編寫Service
編寫DAO
1.3.1.4 根據結果進行頁面跳轉
1.3.2 實現許可權攔截器
1.3.2.1 編寫許可權攔截器
1.3.2.2 配置攔截器
1.4 Struts2的標籤庫
1.4.1 通用標籤庫
1.4.1.1 判斷標籤
<s:if>、<s:elseif>、<s:else>
<s:iterator>
其他常用的標籤
<s:property/>
<s:debug/>
<s:date />----在頁面上進行日期格式化。
1.4.2 UI標籤庫(方便資料回顯)