思维导图:
目标:实现登录注册功能,并且登录普通用户或管理员所对应的主页面的树形展示
所需要用的表:t_easyui_user/t_easyui_permission/t_easyui_role_permission
一、登录注册
第一步:导入所需的工具类和jar包
第二步:建用户的实体类(User)
package com.sg.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 + "]"; } public User() { // TODO Auto-generated constructor stub } }
第三步:写dao层(UserDao)
package com.sg.dao; import java.util.List; import com.sg.entity.RolePermission; import com.sg.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 { // TODO Auto-generated method stub 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 { // TODO Auto-generated method stub String sql="insert into t_easyui_user(name,pwd) values(?,?)"; super.executeUpdate(sql, user, new String[] {"name","pwd"}); } }
第四步:写web层(UserAction)
package com.sg.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sg.dao.UserDao; import com.sg.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) { // TODO Auto-generated method stub try { User u=userDao.login(user); if(u==null) { return "toLogin"; } req.getSession().setAttribute("cuser", u); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return "toLogin"; } return "main"; } public String register(HttpServletRequest req, HttpServletResponse resp) { // TODO Auto-generated method stub try { userDao.add(user); req.setAttribute("msg", "用户名密码错误"); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return "toRegister"; } return "toLogin"; } }
第五步:修改xml文件
<action path="/user" type="com.sg.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>
第六步:js文件
$(function () { $("#bookMenus").tree({ url:$("#ctx").val()+"/permission.action?methodName=tree" }) });
结果展示:
登录:
注册:
二、树形展示及根据用户显示对应的树形展示
第一步:建对应的两个实体类
第二步:写对应的dao层
PermissionDao
package com.sg.dao; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.sg.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 { // TODO Auto-generated method stub String sql="select * from t_easyui_permission where 1=1 "; return super.executeQuery(sql, Permission.class, pageBean); } public List<Permission> listPlus(String ids) throws Exception { // TODO Auto-generated method stub String sql="select * from t_easyui_permission where id in ("+ids+") "; return super.executeQuery(sql, Permission.class, null); } public List<TreeVo<Permission>> tree(Permission permission, PageBean pageBean) throws Exception { // TODO Auto-generated method stub List<Permission> listPermission=this.list(permission, pageBean); List<TreeVo<Permission>> listVo=new ArrayList<TreeVo<Permission>>(); for (Permission p : listPermission) { 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"); // return super.executeQuery(sql, Permission.class, pageBean); } public List<TreeVo<Permission>> treePlus(String ids) throws Exception { // TODO Auto-generated method stub List<Permission> listPermission=this.listPlus(ids); List<TreeVo<Permission>> listVo=new ArrayList<TreeVo<Permission>>(); for (Permission p : listPermission) { 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"); // return super.executeQuery(sql, Permission.class, pageBean); } }
RolePermissionDao
package com.sg.dao; import java.util.List; import com.sg.entity.RolePermission; import com.zking.util.BaseDao; public class RolePermissionDao extends BaseDao<RolePermission>{ public List<RolePermission> findRolePermission(int type) throws Exception { // TODO Auto-generated method stub String sql="select * from t_easyui_role_permission where rid="+type; return super.executeQuery(sql, RolePermission.class, null); } }
第三步:写web层
PermissionAction
package com.sg.web; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sg.dao.PermissionDao; import com.sg.dao.RolePermissionDao; import com.sg.dao.UserDao; import com.sg.entity.Permission; import com.sg.entity.RolePermission; import com.sg.entity.User; import com.zking.framework.ActionSupport; import com.zking.framework.ModelDriver; 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(); @Override public Permission getModel() { // TODO Auto-generated method stub return permission; } public String tree(HttpServletRequest req, HttpServletResponse resp) { // TODO Auto-generated method stub try { User cuser = (User)req.getSession().getAttribute("cuser"); if(cuser==null) { return "toLogin"; } int type=cuser.getType(); List<RolePermission> findRolePermissions = rolePermissionDao.findRolePermission(type); StringBuffer sb=new StringBuffer(); for (RolePermission rp : findRolePermissions) { 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) { // TODO: handle exception e.printStackTrace(); try { ResponseUtil.writeJson(resp, "0"); } catch (Exception e2) { // TODO: handle exception e2.printStackTrace(); } } return null; } }
第四步:修改xml文件
<action path="/permission" type="com.sg.web.PermissionAction"> <forward name="toLogin" path="/login.jsp" redirect="true" /> </action>
结果展示:
卖家页面:
买家页面: