摘要:思路如下在實體類創建類在層中寫好相應的方法登錄注冊方法然后在子控制器中寫好對應的方法。
前言:給大家講解EasyUi項目《網上書城》
*權限:不同用戶登錄時,樹形菜單會展示出不同的效果
碼字不易,點個關注
轉載請說明!
開發工具:eclipse,MySQL
?思維導圖:
目錄
1、登錄、注冊
2、權限樹形展示(不同用戶登錄時,樹形菜單會展示出不同的效果)
1、在實體類entity創建user類
2、在dao層中寫好相應的方法(登錄login、注冊register方法)
3、然后在子控制器中寫好對應的方法。
4、最后到配置文件中xml寫好相應路徑
user實體類
public class User { private long id; private String name; private String pwd; private int type; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public int getType() { return type; } public void setType(int type) { this.type = type; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + ", type=" + type + "]"; } }
dao層
public User login(User user) throws Exception { String sql = "select * from t_easyui_user where name = ""+user.getName()+"" and pwd = ""+user.getPwd()+"""; return super.executeQuery(sql, User.class, null).get(0); } public void add(User user) throws Exception { String sql = "insert into t_easyui_user(name,pwd) values(?,?)"; super.executeUpdate(sql, user, new String[] {"name","pwd"}); }
子控制器層
public class UserAction extends ActionSupport implements ModelDriver { private User user = new User(); private UserDao userDao = new UserDao(); public User getModel() { return user; } public String login(HttpServletRequest req, HttpServletResponse resp) { try { User u = userDao.login(user); if(u == null) { return "toLogin"; } req.getSession().setAttribute("cuser", u); } catch (Exception e) { e.printStackTrace(); return "toLogin"; } //只要數據庫中有這個用戶就跳轉到主界面 return "main"; } public String register(HttpServletRequest req, HttpServletResponse resp) { try { userDao.add(user); req.setAttribute("mag", "用戶名密碼錯誤"); } catch (Exception e) { e.printStackTrace(); return "toRegister"; } //如果注冊成功,跳轉到登錄界面 return "toLogin"; }}
配置文件hpw.xml寫好相應路徑
1、將兩個表關聯起來,其中Permission中的id與pid行成主外鍵關系,RolePermission中的rid與? ? ? pid行成父子關系。
2、從兩個表中得到type對應的菜單號將其顯示
PermissionDao:
public List list(Permission permission, PageBean pageBean) throws Exception { String sql = "select * from t_easyui_Permission where 1=1"; return super.executeQuery(sql, Permission.class, pageBean); } public List listPlus(String ids) throws Exception { //ids="1,2,3,4,5,6,7,8,9,14"; String sql = "select * from t_easyui_Permission where id in ("+ids+")"; return super.executeQuery(sql, Permission.class, null); } public List> tree(Permission permission, PageBean pageBean) throws Exception { List list = this.list(permission, pageBean); List> listVo = new ArrayList>(); for (Permission p : list) { TreeVo vo = new TreeVo<>(); vo.setId(p.getId() + ""); vo.setText(p.getName()); vo.setParentId(p.getPid() + ""); Map map = new HashMap(); map.put("self", p); vo.setAttributes(map); listVo.add(vo); } return BuildTree.buildList(listVo, "0"); } public List> treePuls(String ids) throws Exception { List list = this.listPlus(ids); List> listVo = new ArrayList>(); for (Permission p : list) { TreeVo vo = new TreeVo<>(); vo.setId(p.getId() + ""); vo.setText(p.getName()); vo.setParentId(p.getPid() + ""); Map map = new HashMap(); map.put("self", p); vo.setAttributes(map); listVo.add(vo); } return BuildTree.buildList(listVo, "0"); }
PermissionAction:
public class PermissionAction extends ActionSupport implements ModelDriver { Permission permission = new Permission(); PermissionDao permissionDao = new PermissionDao(); UserDao userDao = new UserDao(); RolePermissionDao rolePermissionDao = new RolePermissionDao(); public Permission getModel() { return permission; } public String tree(HttpServletRequest req, HttpServletResponse resp) { try { User cuser = (User) req.getSession().getAttribute("cuser"); if(cuser == null) { return "toLogin"; } int type = cuser.getType(); List findRolePermissions = rolePermissionDao.findRolePermission(type); StringBuffer sb = new StringBuffer(); for (RolePermission rp : findRolePermissions) { sb.append(",").append(rp.getPid()); } //ids="1,2,3,4,5,6,7,8,9,14"; //List listPlus = permissionDao.listPlus(sb.substring(1)); List> treePuls = permissionDao.treePuls(sb.substring(1)); //List> tree = permissionDao.tree(null, null); ResponseUtil.writeJson(resp, treePuls); } catch (Exception e) { e.printStackTrace(); try { ResponseUtil.writeJson(resp, "0"); } catch (IOException e1) { e1.printStackTrace(); } } return null; } }
?RolePermissionDao:
package com.zking.dao;import java.util.List;import com.hpw.entity.RolePermission;import com.hpw.util.BaseDao;public class RolePermissionDao extends BaseDao { /** * 通過user表中的type字段進行查詢,查詢出商家/買家對應的菜單ID * @param type * @return * @throws Exception */ public List findRolePermission(int type) throws Exception { String sql = "select * from t_easyui_role_Permission where rid = "+type; return super.executeQuery(sql, RolePermission.class, null); } }
效果展示:
買家身份登陸
商家身份登陸
到這里就結束了,其中重點是權限登錄,當中的邏輯比較復雜
歡迎大佬指點?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121063.html
摘要:前言繼續上一篇講解項目網上書城之門戶書籍類別查詢圖片上傳碼字不易,點個關注轉載請說明開發工具,目錄一目標一目標二具體思路以及代碼,效果展示二具體思路以及代碼,效果展示一顯示菜單欄一顯示菜單欄二點擊左側菜單欄,出現對應的書 前言:繼續上一篇講解EasyUi項目《網上書城》之門戶書籍、類別查詢、...
摘要:項目中按鈕權限注冊全局自定義指令來完成的。如果對自定義指令不熟的話可以查閱官方文檔。相關文章鏈接從到搭建后臺框架打包優化從到搭建后臺框架優化篇 前言 首先還是謝謝各位童鞋的大大的贊贊,你們的支持是我前進的動力!上周寫了一篇從0到1搭建element后臺框架,很多童鞋留言提到權限問題,這一周就給大家補上。GitHub 一、jwt授權認證 現在大多數項目都是采用jwt授權認證,也就是我們所...
摘要:前言繼續講解項目網上書城之加入購物車,清空購物車功能碼字不易,點個關注轉載請說明開發工具,目錄目標目標代碼展示代碼展示加入購物車加入購物車清空購物車清空購物車思維導圖實現購物車的三種方式目標加入購物車,清空購物車代碼展 前言:繼續講解EasyUi項目《網上書城》之加入購物車,清空購物車功能 ...
摘要:目前是沒有給我處理好權限這塊的邏輯。我們的項目正常是路由是在本地配置好的一個路由文件,所以,要想實現動態的路由,我們就必須讓實現動態生成。具體頁面上的按鈕權限的分配在前端頁面是怎么控制的,完全可以去里借鑒。 iview admin目前是沒有給我處理好權限這塊的邏輯。所以,權限這塊還是得我們自己去擼。(臉上笑嘻嘻、心里mmp!) 思路做權限,說到底就是為了讓不同權限的用戶, 可以訪問不...
vue-router前端權限控制問題前提綱要:1.用戶A和用戶B有不同的權限。 頁面分左側菜單部分和右側內容部分,右側內容可能有不同路徑的不同內容 最簡單例子為點擊左側用戶管理 右側顯示用戶列表 點擊某條內容詳情 右側顯示某一用戶的詳細內容 2.用戶A可以訪問路徑權限如下: a/list a/detail/:id a/list/:id 用戶B可以訪問路徑權限如下: ...
閱讀 1518·2021-11-23 09:51
閱讀 3639·2021-09-26 09:46
閱讀 2125·2021-09-22 10:02
閱讀 1818·2019-08-30 15:56
閱讀 3318·2019-08-30 12:51
閱讀 2224·2019-08-30 11:12
閱讀 2059·2019-08-29 13:23
閱讀 2323·2019-08-29 13:16