1. 程式人生 > >JAVAEE——BOS物流項目12:角色、用戶管理,使用ehcache緩存,系統菜單根據登錄人展示

JAVAEE——BOS物流項目12:角色、用戶管理,使用ehcache緩存,系統菜單根據登錄人展示

查詢 fin 實現 class 添加權限 lsp 菜單 功能 color

1 學習計劃

1、角色管理

n 添加角色功能

n 角色分頁查詢

2、用戶管理

n 添加用戶功能

n 用戶分頁查詢

3、修改Realm中授權方法(查詢數據庫)

4、使用ehcache緩存權限數據

n 添加ehcache依賴

n 配置緩存管理器

5、系統菜單根據登錄人展示

n 調整頁面ajax請求地址

n 服務端查詢菜單數據

2 角色管理

2.1 添加角色功能

2.1.1 頁面調整

首先先完善pages/admin/function_add.jsp添加權限的頁面,把下拉框改為combotree

技術分享圖片

他的數據格式為:

技術分享圖片

代碼主要修改DaofindAll方法:

技術分享圖片

Function.hbm.xml修改

children為立即加載

技術分享圖片

function.java中加上,成功實現下拉框的修改

技術分享圖片

然後繼續進行下一步調整,打開頁面:WEB-INF/pages/admin/role_add.jsp

技術分享圖片

第一步:修改頁面,使用ztree勾選效果(checkbox

技術分享圖片

第二步:修改ajax方法的請求URL地址

技術分享圖片

技術分享圖片

第三步:為保存按鈕綁定事件,提交表單

技術分享圖片

技術分享圖片

2.1.2 服務端實現

創建角色管理ActionServiceDao

技術分享圖片

Service代碼:

技術分享圖片

配置struts.xml

技術分享圖片

2.2 角色分頁查詢

修改role.jsp頁面中datagrid

URL地址

技術分享圖片

RoleAction中提供分頁查詢方法:

技術分享圖片

3 用戶管理

3.1 添加用戶

頁面:WEB-INF/pages/admin/userinfo.jsp

技術分享圖片

3.1.1 頁面調整

第一步:發送ajax請求,獲取角色數據,在回調函數中動態展示角色數據,展示為checkbox

<tr>
                       <td>選擇角色:</td>
                       <td colspan="3" id="roleTD">
                           <script type="text/javascript">
                               $(
function(){ //頁面加載完成後,發送ajax請求,獲取所有的角色數據 $.post(‘roleAction_listajax.action‘,function(data){ //在ajax回調函數中,解析json數據,展示為checkbox for(var i=0;i<data.length;i++){ var id = data[i].id; var name = data[i].name; $("#roleTD").append(‘<input id="‘+id+‘" type="checkbox" name="roleIds" value="‘+id+‘"><label for="‘+id+‘">‘+name+‘</label>‘); } }); }); </script> </td> </tr>

Labelfor屬性可以使點擊文字也能觸發checkbox的點擊事件。

第二步:在RoleAction中提供listajax方法,查詢所有角色,返回json數據

技術分享圖片

技術分享圖片

第三步:為保存按鈕綁定事件,提交表單

技術分享圖片

技術分享圖片

3.1.2 服務端實現

UserAction中提供add方法,保存一個用戶

技術分享圖片

Service代碼:

技術分享圖片

配置struts.xml

技術分享圖片

3.2 分頁查詢

第一步:修改userlist.jsp頁面中datagridURL地址

技術分享圖片

在數據表格中,修改field,由電話修改為角色

技術分享圖片

第二步:在UserAction中提供分頁查詢方法

技術分享圖片

第三步:在User類中提供getRoleNames方法,getBirthdayString方法

技術分享圖片

技術分享圖片

4 修改Realm中授權方法(查詢數據庫)

技術分享圖片

FunctionDao中擴展方法,根據用戶id查詢對應的權限

技術分享圖片

5 使用ehcache緩存權限數據

ehcache是專門緩存插件,可以緩存Java對象,提高系統性能。

l ehcache提供的jar包:

技術分享圖片

第一步:在pom.xml文件中引入ehcache的依賴

技術分享圖片

第二步:在項目中提供ehcache的配置文件

技術分享圖片

第三步:在spring配置文件中配置緩存管理器對象,並註入給安全管理器對象

技術分享圖片

6 系統菜單根據登錄人動態展示

第一步:修改index.jsp頁面中ajax方法的請求地址

技術分享圖片

第二步:在Action中提供findMenu方法

技術分享圖片

第三步:在Service中提供方法

技術分享圖片

Dao代碼:

技術分享圖片

註意:需要在Function類中提供getpId方法(用於顯示父級目錄)

    public String getpId(){
        if(parentFunction == null)
            return "0";
        return parentFunction.getId();
    }

JAVAEE——BOS物流項目12:角色、用戶管理,使用ehcache緩存,系統菜單根據登錄人展示