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

📄 rightitemaction.java

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

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
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.SRightItem;
import com.support.hibernate.table.SRightItemDAO;
import com.support.struts.form.RightItemForm;

/** 
 * MyEclipse Struts
 * Creation date: 08-06-2007
 * 
 * XDoclet definition:
 * @struts.action path="/rightItem" name="rightItemForm" input="/admin/rightItem/index.jsp" scope="request" validate="true"
 * @struts.action-forward name="success" path="/admin/rightItem/index.jsp"
 */
public class RightItemAction 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) {
		RightItemForm rightItemForm = (RightItemForm) form;// TODO Auto-generated method stub
		int flag = rightItemForm.getFlag();
		switch (flag) {
		case 0://返回初始化菜单信息
			getAllItem(request,response);
			return mapping.findForward("success");
		case 1://返回指定节点的菜单信息
			getAllItem(request,response);
			return null;
		case 2://返回选中节点的信息
			getRightInfo(rightItemForm);
			return mapping.findForward("success");
		case 3://增加同级节点
			dealItem(rightItemForm,request,response);
			return mapping.findForward("success");
		case 4://增加子节点
			dealItem(rightItemForm,request,response);
			return mapping.findForward("success");
		case 5://修改选中节点
			dealItem(rightItemForm,request,response);
			return mapping.findForward("success");
		case 6://删除选中节点
			dealItem(rightItemForm,request,response);
			return mapping.findForward("success");
		default:
			break;
		}
		return null;
	}
	
	/**
	 * 获取所有已有的菜单信息展示出来供修改
	 * 之所以另写一个而不用MenuTree是因为每个菜单的action事件都发生了变化
	 * @param request
	 * @param response
	 * @throws IOException 
	 */
	public void getAllItem(HttpServletRequest request, HttpServletResponse response) {
		String parentId = request.getParameter("parentId");
		if (parentId == null) parentId = "0";
		SRightItemDAO rightItemDao = new SRightItemDAO();
		rightItemDao.getSession().clear();
		List rightList = new ArrayList();
		rightList = rightItemDao.findByParentId(parentId);
		if (parentId.trim().equals("0")) {
			request.setAttribute("rightList", rightList);
		} else {
			//以xml的格式输出节点信息
		    response.setHeader("Cache-Control", "no-cache");
		    response.setContentType("text/xml; charset=GBK");
		    String path = request.getContextPath()+"/rightItem.do?";
		    StringBuffer xmlString = new StringBuffer("<?xml version=\"1.0\" encoding=\"GBK\" ?><tree>");
		    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("\" action=\"javascript:doSelect('");
	    			xmlString.append(rightItem.getId());
	    			xmlString.append("')\" />");
	    		} else if (nodeType == 1) {
	    			xmlString.append("<tree text=\"");
	    			xmlString.append(rightItem.getName());
	    			xmlString.append("\" action=\"javascript:doSelect('");
	    			xmlString.append(rightItem.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();
		    }
		}
	}
	
	/**
	 * 根据ID信息获取菜单的其他信息并更新到页面的指定区域
	 * @param form
	 */
	public void getRightInfo(RightItemForm form) {
		String id = form.getRightId();
		SRightItemDAO dao = new SRightItemDAO();
		dao.getSession().clear();
		SRightItem item = dao.findById(id);
		form.setRightId(item.getId());
		form.setDescription(item.getDescription());
		form.setLink(item.getLink());
//		System.out.println("Name = "+item.getName());
		form.setName(item.getName());
		form.setStatus(item.getStatus());
	}
	/**
	 * 节点处理
	 * @param form
	 * @param request
	 * @param response
	 */
	public void dealItem(RightItemForm form,HttpServletRequest request, HttpServletResponse response) {
		int flag = form.getFlag();
		String rightId = form.getRightId();
		if (rightId.trim().equals("")) {
			rightId = "0";
		}
		String name = form.getName();
		String link = form.getLink();
		String description = form.getDescription();
		String status = form.getStatus();
		SRightItemDAO dao = new SRightItemDAO();
		SRightItem item = null;
		if (flag == 3) {
			//增加同级节点
			item = dao.findById(rightId);
			String parentId = "";
			if (item != null) {
				parentId = item.getParentId();
			} else {
				parentId = "0";
			}
			item = new SRightItem(name,link,description,status,parentId);
			dao.save(item);
			if (rightId.trim().equals("0")) {
				request.setAttribute("message", "增加顶级节点成功");
			} else {
				request.setAttribute("message", "增加同级节点成功");
			}
		} else if (flag == 4) {
			//增加子节点
			item = new SRightItem(name,link,description,status,rightId);
			dao.save(item);
			if (rightId.trim().equals("0")) {
				request.setAttribute("message", "增加顶级节点成功");
			} else {
				request.setAttribute("message", "增加子节点成功");
			}
		} else if (flag == 5) {
			//修改选中节点
			item = dao.findById(rightId);
			if (item != null) {
				item.setDescription(description);
				item.setLink(link);
				item.setName(name);
				item.setStatus(status);
				request.setAttribute("message", "修改选中节点成功");
			} else {
				request.setAttribute("message", "选中的节点不存在");
			}
		} else if (flag == 6) {
			//删除选中节点 -- 注这里应该同时删除所有子节点 或者节点有子节点时不允许删除
			if (dao.findByParentId(rightId).size() > 0) {
				request.setAttribute("message", "该节点还包含子节点不允许删除");
			} else {
				dao.delete(dao.findById(rightId));
				request.setAttribute("message", "删除选中节点成功");
			}
		}
		dao.getSession().flush();
		dao.getSession().clear();
	}
}

⌨️ 快捷键说明

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