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

📄 departmentaction.java

📁 一个用ajax做的树行框架
💻 JAVA
字号:
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.support.struts.action;

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.support.hibernate.table.SDepartment;
import com.support.hibernate.table.SDepartmentDAO;
import com.support.struts.form.DepartmentForm;

/** 
 * MyEclipse Struts
 * Creation date: 08-07-2007
 * 
 * XDoclet definition:
 * @struts.action path="/department" name="departmentForm" input="/admin/department/index.jsp" scope="request" validate="true"
 * @struts.action-forward name="success" path="/admin/department/index.jsp"
 */
public class DepartmentAction extends Action {
	/*
	 * Generated Methods
	 */

	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		DepartmentForm departmentForm = (DepartmentForm) form;// TODO Auto-generated method stub
		int flag = departmentForm.getFlag();
		switch (flag) {
		case 0://返回初始化部门信息
			getAllDepartment(request,response);
			return mapping.findForward("success");
		case 1://返回指定节点的菜单信息
			getAllDepartment(request,response);
			return null;
		case 2://返回选中节点的信息
			getDepartmentInfo(departmentForm);
			return mapping.findForward("success");
		case 3://增加同级节点
			dealItem(departmentForm,request,response);
			return mapping.findForward("success");
		case 4://增加子节点
			dealItem(departmentForm,request,response);
			return mapping.findForward("success");
		case 5://修改选中节点
			dealItem(departmentForm,request,response);
			return mapping.findForward("success");
		case 6://删除选中节点
			dealItem(departmentForm,request,response);
			return mapping.findForward("success");
		default:
			break;
		}
		return null;
	}
	/**
	 * 返回部门信息列表
	 * @param request
	 * @param response
	 */
	public void getAllDepartment(HttpServletRequest request, HttpServletResponse response) {
		String parentId = request.getParameter("parentId");
		if (parentId == null) parentId = "0";
		SDepartmentDAO dao = new SDepartmentDAO();
		List departmentList = dao.findByParentId(parentId);
		if (parentId.trim().equals("0")) {
			request.setAttribute("departmentList", departmentList);
		} else {
			//以xml的格式输出节点信息
		    response.setHeader("Cache-Control", "no-cache");
		    response.setContentType("text/xml; charset=GBK");
		    String path = request.getContextPath()+"/department.do?";
		    StringBuffer xmlString = new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\" ?><tree>");
		    for (int i = 0;i < departmentList.size(); i ++) {
	    		SDepartment departmentItem = (SDepartment)departmentList.get(i);
	    		List childrenList = dao.findByParentId(departmentItem.getId());
	    		int nodeType = 0;//非叶子节点
	    		if (childrenList.size() < 1) nodeType = 1;//叶子节点
	    		if (nodeType == 0) {
	    			xmlString.append("<tree text=\"");
	    			xmlString.append(departmentItem.getName());
	    			xmlString.append("\" src=\"");
	    			xmlString.append(path);
	    			xmlString.append("flag=1&amp;parentId=");
	    			xmlString.append(departmentItem.getId());
	    			xmlString.append("\" action=\"javascript:doSelect('");
	    			xmlString.append(departmentItem.getId());
	    			xmlString.append("')\" />");
	    		} else if (nodeType == 1) {
	    			xmlString.append("<tree text=\"");
	    			xmlString.append(departmentItem.getName());
	    			xmlString.append("\" action=\"javascript:doSelect('");
	    			xmlString.append(departmentItem.getId());
	    			xmlString.append("')\" />");
	    		}
		    }
		    xmlString.append("</tree>");
		    try {
		    	PrintWriter out = response.getWriter();
		    	out.println(xmlString.toString());
//		    	System.out.println(xmlString.toString());
		    } catch (Exception e) {
		    	e.printStackTrace();
		    }
		}
	}
	/**
	 * 返回指定部门的信息
	 * @param departmentForm
	 */
	public void getDepartmentInfo(DepartmentForm form) {
		String id = form.getId();
		SDepartmentDAO dao = new SDepartmentDAO();
		dao.getSession().clear();
		SDepartment item = dao.findById(id);
		form.setId(item.getId());
		form.setDescription(item.getDescription());
		form.setName(item.getName());
	}
	/**
	 * 
	 * @param departmentForm
	 * @param request
	 * @param response
	 */
	public void dealItem(DepartmentForm form,HttpServletRequest request, HttpServletResponse response) {
		int flag = form.getFlag();
		String id = form.getId();
		if (id.trim().equals("")) {
			id = "0";
		}
		String name = form.getName();
		String description = form.getDescription();
		SDepartmentDAO dao = new SDepartmentDAO();
		SDepartment item = null;
		if (flag == 3) {
			//增加同级节点
			item = dao.findById(id);
			String parentId = "";
			if (item != null) {
				parentId = item.getParentId();
			} else {
				parentId = "0";
			}
			item = new SDepartment(name,parentId,description);
			dao.save(item);
			if (id.trim().equals("0")) {
				request.setAttribute("message", "增加顶级部门成功");
			} else {
				request.setAttribute("message", "增加同级部门成功");
			}
		} else if (flag == 4) {
			//增加子节点
			item = new SDepartment(name,id,description);
			dao.save(item);
			if (id.trim().equals("0")) {
				request.setAttribute("message", "增加顶级部门成功");
			} else {
				request.setAttribute("message", "增加下属部门成功");
			}
		} else if (flag == 5) {
			//修改选中节点
			item = dao.findById(id);
			if (item != null) {
				item.setDescription(description);
				item.setName(name);
				request.setAttribute("message", "修改选中节点成功");
			} else {
				request.setAttribute("message", "选中的节点不存在");
			}
		} else if (flag == 6) {
			//删除选中节点 -- 注这里应该同时删除所有子节点 或者节点有子节点时不允许删除
			if (dao.findByParentId(id).size() > 0) {
				request.setAttribute("message", "该部门还包含下属部门不允许删除");
			} else {
				dao.delete(dao.findById(id));
				request.setAttribute("message", "删除选中部门成功");
			}
		}
		dao.getSession().flush();
		dao.getSession().clear();
	}
}

⌨️ 快捷键说明

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