📄 rightitemaction.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&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 + -