摘要:思路如下在實(shí)體類創(chuàng)建類在層中寫好相應(yīng)的方法登錄注冊(cè)方法然后在子控制器中寫好對(duì)應(yīng)的方法。
前言:給大家講解EasyUi項(xiàng)目《網(wǎng)上書城》
*權(quán)限:不同用戶登錄時(shí),樹(shù)形菜單會(huì)展示出不同的效果
碼字不易,點(diǎn)個(gè)關(guān)注
轉(zhuǎn)載請(qǐng)說(shuō)明!
開(kāi)發(fā)工具:eclipse,MySQL
?思維導(dǎo)圖:
目錄
2.2、實(shí)現(xiàn)權(quán)限登錄的思路
1、登錄、注冊(cè)
2、權(quán)限樹(shù)形展示(不同用戶登錄時(shí),樹(shù)形菜單會(huì)展示出不同的效果)
登錄、注冊(cè)個(gè)人覺(jué)得比較簡(jiǎn)單。思路如下:
1、在實(shí)體類entity創(chuàng)建user類
2、在dao層中寫好相應(yīng)的方法(登錄login、注冊(cè)register方法)
3、然后在子控制器中寫好對(duì)應(yīng)的方法。
4、最后到配置文件中xml寫好相應(yīng)路徑
user實(shí)體類
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"; } //只要數(shù)據(jù)庫(kù)中有這個(gè)用戶就跳轉(zhuǎn)到主界面 return "main"; } public String register(HttpServletRequest req, HttpServletResponse resp) { try { userDao.add(user); req.setAttribute("mag", "用戶名密碼錯(cuò)誤"); } catch (Exception e) { e.printStackTrace(); return "toRegister"; } //如果注冊(cè)成功,跳轉(zhuǎn)到登錄界面 return "toLogin"; }}
配置文件hpw.xml寫好相應(yīng)路徑
1、將兩個(gè)表關(guān)聯(lián)起來(lái),其中Permission中的id與pid行成主外鍵關(guān)系,RolePermission中的rid與? ? ? pid行成父子關(guān)系。
2、從兩個(gè)表中得到type對(duì)應(yīng)的菜單號(hào)將其顯示
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 { /** * 通過(guò)user表中的type字段進(jìn)行查詢,查詢出商家/買家對(duì)應(yīng)的菜單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); } }
效果展示:
買家身份登陸
商家身份登陸
到這里就結(jié)束了,其中重點(diǎn)是權(quán)限登錄,當(dāng)中的邏輯比較復(fù)雜
歡迎大佬指點(diǎn)?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/121063.html
摘要:前言繼續(xù)上一篇講解項(xiàng)目網(wǎng)上書城之門戶書籍類別查詢圖片上傳碼字不易,點(diǎn)個(gè)關(guān)注轉(zhuǎn)載請(qǐng)說(shuō)明開(kāi)發(fā)工具,目錄一目標(biāo)一目標(biāo)二具體思路以及代碼,效果展示二具體思路以及代碼,效果展示一顯示菜單欄一顯示菜單欄二點(diǎn)擊左側(cè)菜單欄,出現(xiàn)對(duì)應(yīng)的書 前言:繼續(xù)上一篇講解EasyUi項(xiàng)目《網(wǎng)上書城》之門戶書籍、類別查詢、...
摘要:項(xiàng)目中按鈕權(quán)限注冊(cè)全局自定義指令來(lái)完成的。如果對(duì)自定義指令不熟的話可以查閱官方文檔。相關(guān)文章鏈接從到搭建后臺(tái)框架打包優(yōu)化從到搭建后臺(tái)框架優(yōu)化篇 前言 首先還是謝謝各位童鞋的大大的贊贊,你們的支持是我前進(jìn)的動(dòng)力!上周寫了一篇從0到1搭建element后臺(tái)框架,很多童鞋留言提到權(quán)限問(wèn)題,這一周就給大家補(bǔ)上。GitHub 一、jwt授權(quán)認(rèn)證 現(xiàn)在大多數(shù)項(xiàng)目都是采用jwt授權(quán)認(rèn)證,也就是我們所...
摘要:前言繼續(xù)講解項(xiàng)目網(wǎng)上書城之加入購(gòu)物車,清空購(gòu)物車功能碼字不易,點(diǎn)個(gè)關(guān)注轉(zhuǎn)載請(qǐng)說(shuō)明開(kāi)發(fā)工具,目錄目標(biāo)目標(biāo)代碼展示代碼展示加入購(gòu)物車加入購(gòu)物車清空購(gòu)物車清空購(gòu)物車思維導(dǎo)圖實(shí)現(xiàn)購(gòu)物車的三種方式目標(biāo)加入購(gòu)物車,清空購(gòu)物車代碼展 前言:繼續(xù)講解EasyUi項(xiàng)目《網(wǎng)上書城》之加入購(gòu)物車,清空購(gòu)物車功能 ...
摘要:目前是沒(méi)有給我處理好權(quán)限這塊的邏輯。我們的項(xiàng)目正常是路由是在本地配置好的一個(gè)路由文件,所以,要想實(shí)現(xiàn)動(dòng)態(tài)的路由,我們就必須讓實(shí)現(xiàn)動(dòng)態(tài)生成。具體頁(yè)面上的按鈕權(quán)限的分配在前端頁(yè)面是怎么控制的,完全可以去里借鑒。 iview admin目前是沒(méi)有給我處理好權(quán)限這塊的邏輯。所以,權(quán)限這塊還是得我們自己去擼。(臉上笑嘻嘻、心里mmp!) 思路做權(quán)限,說(shuō)到底就是為了讓不同權(quán)限的用戶, 可以訪問(wèn)不...
vue-router前端權(quán)限控制問(wèn)題前提綱要:1.用戶A和用戶B有不同的權(quán)限。 頁(yè)面分左側(cè)菜單部分和右側(cè)內(nèi)容部分,右側(cè)內(nèi)容可能有不同路徑的不同內(nèi)容 最簡(jiǎn)單例子為點(diǎn)擊左側(cè)用戶管理 右側(cè)顯示用戶列表 點(diǎn)擊某條內(nèi)容詳情 右側(cè)顯示某一用戶的詳細(xì)內(nèi)容 2.用戶A可以訪問(wèn)路徑權(quán)限如下: a/list a/detail/:id a/list/:id 用戶B可以訪問(wèn)路徑權(quán)限如下: ...
閱讀 1533·2021-11-23 09:51
閱讀 3646·2021-09-26 09:46
閱讀 2135·2021-09-22 10:02
閱讀 1849·2019-08-30 15:56
閱讀 3332·2019-08-30 12:51
閱讀 2235·2019-08-30 11:12
閱讀 2068·2019-08-29 13:23
閱讀 2331·2019-08-29 13:16