⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menutree.java

📁 一个用ajax做的树行框架
💻 JAVA
字号:
package com.support.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.Query;
import org.hibernate.Session;
import com.support.hibernate.table.*;
import com.support.hibernate.*;

public class MenuTree extends HttpServlet {

	/**
	 * 版本id
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * flag=1根据功能权限获取菜单列表
	 * flag=2自动完成列表吗?好像现在不需要了阿
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    String flag = request.getParameter("flag");
	    if (flag == null) flag = "0";
	    int intFlag = Integer.parseInt(flag);
	    switch (intFlag) {
	    case 0://初始化菜单
	    	initMenu(request,response);
	    	break;
	    case 1://动态加载菜单节点
	    	getMenu(request,response);
	    	break;
	    case 2:
	    	break;
	    default:
	    	break;
	    }
	}
	
	/**
	 * 初始化菜单
	 * @param request
	 * @param response
	 * @throws IOException 
	 */
	public void initMenu(HttpServletRequest request, HttpServletResponse response) throws IOException {
	    String userId = (String)request.getSession().getAttribute("id");
	    String loginId = (String)request.getSession().getAttribute("userId");
	    SRightItemDAO rightItemDao = new SRightItemDAO();
	    rightItemDao.getSession().clear();
	    List menuList = new ArrayList();
	    String path = request.getContextPath();
	    if (loginId.trim().equals("admin")) {
	    	menuList = rightItemDao.findByParentId("0");
	    } else {
	    	StringBuffer sql = new StringBuffer("FROM SRightItem a WHERE (EXISTS (SELECT 1 FROM SRoleRight b WHERE EXISTS (SELECT 1 FROM SUserRole c WHERE c.userId =:roleUserId AND c.roleId = b.roleId AND a.id = b.rightId)) OR EXISTS (SELECT 1 FROM SUserRight d WHERE d.userId = :userId)) and a.parentId = :menuId and a.status = 0");
	    	Session session = HibernateSessionFactory.getSession();
	    	Query query = session.createQuery(sql.toString());
		    query.setParameter("userId", userId);
		    query.setParameter("roleUserId", userId);
		    query.setParameter("menuId", "0");
		    menuList = query.list();
	    }
	    request.getSession().setAttribute("menuList", menuList);
	    response.sendRedirect(path+"/menuTree.jsp");
	}
	/**
	 * 读取用户的功能菜单
	 * 角色权限+用户权限=用户全部功能权限
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	public void getMenu(HttpServletRequest request, HttpServletResponse response) throws IOException {
	    response.setHeader("Cache-Control", "no-cache");
	    response.setContentType("text/xml; charset=GB18030");
	    PrintWriter out = response.getWriter();
	    String userId = (String)request.getSession().getAttribute("id");
	    String loginId = (String)request.getSession().getAttribute("userId");
	    String parentId = request.getParameter("parentId");
	    String path = request.getContextPath()+"/menuTree?";
	    SRightItemDAO rightItemDao = new SRightItemDAO();
	    rightItemDao.getSession().clear();
	    StringBuffer xmlString = new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\" ?><tree>");
	    List rightList = new ArrayList();
	    if (loginId.trim().equals("admin")) {
	    	//如果是admin用户 选择全部菜单展示出来
	    	rightList = rightItemDao.findByParentId(parentId);
	    } else {
	    	StringBuffer sql = new StringBuffer("FROM SRightItem a WHERE (EXISTS (SELECT 1 FROM SRoleRight b WHERE EXISTS (SELECT 1 FROM SUserRole c WHERE c.userId =:roleUserId AND c.roleId = b.roleId AND a.id = b.rightId)) OR EXISTS (SELECT 1 FROM SUserRight d WHERE d.userId = :userId)) and a.parentId = :menuId and a.status = 0");
	    	Session session = HibernateSessionFactory.getSession();
	    	Query query = session.createQuery(sql.toString());
		    query.setParameter("userId", userId);
		    query.setParameter("roleUserId", userId);
		    query.setParameter("menuId", parentId);
		    rightList = query.list();
	    }
    	for (int i = 0; i < rightList.size(); i ++) {
    		SRightItem rightItem = (SRightItem)rightList.get(i);
    		List childrenList = rightItemDao.findByParentId(rightItem.getId());
    		int nodeType = 0;//非叶子节点
    		if (childrenList.size() < 1) nodeType = 1;//叶子节点
    		if (nodeType == 0) {
    			xmlString.append("<tree text=\"");
    			xmlString.append(rightItem.getName());
    			xmlString.append("\" src=\"");
    			xmlString.append(path);
    			xmlString.append("flag=1&amp;parentId=");
    			xmlString.append(rightItem.getId());
    			xmlString.append("\" />");
    		} else if (nodeType == 1) {
    			xmlString.append("<tree text=\"");
    			xmlString.append(rightItem.getName());
    			xmlString.append("\" action=\"");
    			xmlString.append(request.getContextPath());
    			xmlString.append(rightItem.getLink());
    			xmlString.append("\" target=\"info\" />");
    		}
    	}
	    xmlString.append("</tree>");
	    System.out.println(xmlString.toString());
	    out.println(xmlString.toString());
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -