当前位置:网站首页>自定义mvc项目登录注册和树形菜单
自定义mvc项目登录注册和树形菜单
2022-07-25 16:23:00 【迟早嘚秃】
Easyui and mvc 项目1_登陆注册权限树形展示
一、登录and注册
导入tomcat和项目所需要的jar包和之前写好的工具类
建立数据库中的User尸体类(用户)
package com.mjx.entity;
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 + "]";
}
}
写登陆and注册的dao方法
package com.mjx.dao;
import java.util.List;
import com.mjx.entity.RolePermission;
import com.mjx.entity.User;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
public class UserDao extends BaseDao<User> {
// 登陆
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" });
}
}
写UserAction
package com.mjx.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mjx.dao.UserDao;
import com.mjx.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
public class UserAction extends ActionSupport implements ModelDriver<User> {
private User user = new User();
private UserDao userDao = new UserDao();
@Override
public User getModel() {
// TODO Auto-generated method stub
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("msg", "用户名或密码错误");
} catch (Exception e) {
e.printStackTrace();
return "toRegister";
}
// 如果注册成功,跳转到登录界面
return "toLogin";
}
}
修改xml文件,对应跳转的页面
<?xml version="1.0" encoding="UTF-8"?>
<config>
<action path="/user" type="com.dzl.web.UserAction">
<forward name="main" path="/bg/mainTemp.jsp" redirect="false" /> <!-- 转发 -->
<forward name="toLogin" path="/login.jsp" redirect="true" /> <!--重定向 -->
<forward name="toRegister" path="/register.jsp" redirect="false" />
</action>
<action path="/Permission" type="com.dzl.web.PermissionAction">
<forward name="toLogin" path="/login.jsp" redirect="true" /> <!--重定向 -->
</action>
</config>
及main.js
$(function(){
$("#bookMenus").tree({
url:$("#ctx").val()+"/Permission.action?methodName=tree"
})
})
运行结果:

二、树形菜单的展示
PermissionAction
package com.mjx.web;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mjx.dao.PermissionDao;
import com.mjx.dao.RolePermissionDao;
import com.mjx.dao.UserDao;
import com.mjx.entity.Permission;
import com.mjx.entity.RolePermission;
import com.mjx.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
import com.zking.util.BuildTree;
import com.zking.util.ResponseUtil;
import com.zking.util.TreeVo;
public class PermissionAction extends ActionSupport implements ModelDriver<Permission> {
private Permission permission = new Permission();
private PermissionDao permissionDao = new PermissionDao();
private UserDao userDao = new UserDao();
private RolePermissionDao rolePermissionDao = new RolePermissionDao();
public Permission getModel() {
// TODO Auto-generated method stub
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<RolePermission> rolePermissions = rolePermissionDao.findRolePermission(type);
StringBuffer sb = new StringBuffer();
for (RolePermission rp : rolePermissions) {
sb.append(",").append(rp.getPid());
}
List<TreeVo<Permission>> treePlus = permissionDao.treePlus(sb.substring(1));
// List<TreeVo<Permission>> tree = permissionDao.tree(null, null);
ResponseUtil.writeJson(resp, treePlus);
} catch (Exception e) {
e.printStackTrace();
try {
ResponseUtil.write(resp, "0");
} catch (Exception e1) {
e1.printStackTrace();
}
}
return null;
}
}
PermissionDao
package com.mjx.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.mjx.entity.Permission;
import com.zking.util.BaseDao;
import com.zking.util.BuildTree;
import com.zking.util.PageBean;
import com.zking.util.TreeVo;
public class PermissionDao extends BaseDao<Permission> {
/*
* 变成easyui的tree控件所识别的json格式
* 1.jackson引入进来
* 2.拿到Permission的list集合,先查询数据库
* 3.List<Permission>转换成List<TreeVo>
* 4.通过工具类BuildTree将平级数据转换成层级数据
*
*/
//第二步
public List<Permission> list(Permission Permission, PageBean pageBean) throws Exception {
String sql = "select * from t_easyui_Permission where 1=1";
return super.executeQuery(sql, Permission.class, null);
}
// 第三步
public List<TreeVo<Permission>> tree(Permission permission, PageBean pageBean) throws Exception {
List<Permission> listPermission = this.list(permission, pageBean);
List<TreeVo<Permission>> listVo = new ArrayList<TreeVo<Permission>>();
for (Permission p : listPermission) {
System.out.println(p);
TreeVo<Permission> vo=new TreeVo<>();
vo.setId(p.getId()+"");
vo.setText(p.getName());
vo.setParentId(p.getPid()+"");
Map<String, Object> map =new HashMap<String, Object>();
map.put("self", p);
vo.setAttributes(map);
listVo.add(vo);
}
return BuildTree.buildList(listVo,"0");
}
public List<TreeVo<Permission>> treePlus(String ids) throws Exception {
List<Permission> listPermission = this.listPlus(ids);
List<TreeVo<Permission>> listVo = new ArrayList<TreeVo<Permission>>();
for (Permission p : listPermission) {
System.out.println(p);
TreeVo<Permission> vo=new TreeVo<>();
vo.setId(p.getId()+"");
vo.setText(p.getName());
vo.setParentId(p.getPid()+"");
Map<String, Object> map =new HashMap<String, Object>();
map.put("self", p);
vo.setAttributes(map);
listVo.add(vo);
}
return BuildTree.buildList(listVo,"0");
}
public List<Permission> listPlus(String ids) throws Exception {
String sql = "select * from t_easyui_Permission where id in ("+ids+")";
return super.executeQuery(sql, Permission.class, null);
}
/* 目前:
* 是查询所有的菜单数据形成属性的层级结构
* 1.select * from t_easyui_Permission where 1=1 and id in(商家菜单id/买家菜单id)
* 2.买家/商家的菜单id是在角色权限表t_easyui_role_permission中获取,通过user表中的TYPE字段进行查询
*
* */
// public static void main(String[] args) {
// PermissionDao p = new PermissionDao();
// try {
// List<TreeVo<Permission>> l = p.tree(null, null);
// for (TreeVo<Permission> t : l) {
// System.out.println(t);
// }
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
}
RolePermissionDao
package com.mjx.dao;
import java.util.List;
import com.mjx.entity.RolePermission;
import com.zking.util.BaseDao;
public class RolePermissionDao extends BaseDao<RolePermission> {
// 通过rid查出对应的pid
public List<RolePermission> findRolePermission(int type) throws Exception {
String sql = "select * from t_easyui_role_Permission where rid = "+type;
return super.executeQuery(sql, RolePermission.class, null);
}
}
运行结果
卖家javaxl登录
普通买家dzl登录
边栏推荐
- [image denoising] image denoising based on bicube interpolation and sparse representation matlab source code
- 一文理解分布式开发中的服务治理
- 如何构建面向海量数据、高实时要求的企业级OLAP数据引擎?
- 泰雷兹推出解决方案,助力SAP客户控制云端数据
- 01. A simpler way to deliver a large number of props
- 优必选大型仿人服务机器人Walker X的核心技术突破
- 只有1000元能买什么理财产品赚钱?
- pymongo保存dataframe格式的数据(insert_one, insert_many, 多线程保存)
- 权限管理-删除菜单(递归)
- [wechat applet] detailed explanation of applet host environment
猜你喜欢

leetcode:6127. 优质数对的数目【位运算找规律 + 两数之和大于等于k + 二分】

使用 Terraform 在 AWS 上快速部署 MQTT 集群

Is the win11 dynamic tile gone? Method of restoring dynamic tile in Win 11

阿唐的小帮手

Solve win10 disk occupation of 100%

聊聊如何用 Redis 实现分布式锁?

一文理解分布式开发中的服务治理

如何安装govendor并打开项目
![[fault diagnosis] bearing fault diagnosis based on Bayesian optimization support vector machine with matlab code](/img/9e/138e4b160fa9bd6486fac44a788d09.png)
[fault diagnosis] bearing fault diagnosis based on Bayesian optimization support vector machine with matlab code

论文笔记:Highly accurate protein structure prediction with AlphaFold (AlphaFold 2 & appendix)
随机推荐
The presentation logic of mail sending and receiving inbox outbox and reply to the problem of broken chain
Visual studio 2022 view class diagram
Record locks
Doget and dopost
MyBaits
解决Win10磁盘占用100%
Verifiable random function VRF
mysql 表写锁
从业务需求出发,开启IDC高效运维之路
Communication between processes (pipeline details)
C# 模拟抽奖
Test Driven Development (TDD) online practice room | classes open on September 17
微信小程序不使用插件,渲染富文本中的视频,图片自适应,plus版本
MySQL 元数据锁(MDL)
[image hiding] digital image watermarking method technology based on hybrid dwt-hd-svd with matlab code
权限管理-角色分配菜单
MySQL self incrementing lock
Waterfall flow layout
测试框架-unittest-命令行操作、断言方法
slf4j 搭配 log4j2 处理日志