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

📄 rightaction.java

📁 java电信经典-学习例子源代码
💻 JAVA
字号:
package netctoss.rights.actions;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import global.ModuleMenu;
import global.RightMenu;
import global.SortMenu;
import global.TimeTools;
import global.ValidatorTool;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import netctoss.dao.ModulesDAO;
import netctoss.dao.OperationsDAO;
import netctoss.dao.RightsDAO;
import netctoss.dao.RolerightsDAO;
import netctoss.entities.Modules;
import netctoss.entities.Rights;
import netctoss.entities.Rolerights;
import netctoss.rights.forms.RightForm;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
//专门负责权限的删除,修改,添加,--不负责查询
public class RightAction extends DispatchAction {
	private boolean validate(RightForm  form,ActionMessages errors)
	{
		if(ValidatorTool.validateNull("name", form.getName(), errors, "权限名必须输入")) return true;
		if(ValidatorTool.validateNull("url", form.getUrl(), errors, "权限URL必须输入")) return true;
		return false;
	}
	//负责数据的添加逻辑
	public ActionForward insert(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		RightForm  fm=(RightForm)form;
		RightsDAO  dao=new RightsDAO();
		ModulesDAO daomod=new ModulesDAO();
		OperationsDAO daoper= new OperationsDAO();
		Rights right=new Rights();
		ActionMessages errors=new ActionMessages();
		if(validate(fm,errors)){//验证没有通过 			
			errors.add("right.insert", new ActionMessage("right.insert.failure",TimeTools.getNowTime("HH:mm:ss")));
			this.saveErrors(request, errors);
			return mapping.findForward("goaddnewright");
		}		
		
		try{
			right.setId(0);
			right.setName(fm.getName());
			right.setUrl(fm.getUrl());		
			right.setModuleid(daomod.findById(fm.getModuleid()));
			right.setOperationid(daoper.findById(fm.getOperateid()));
			dao.save(right);//这个地方应该做异常处理	
			dao.getSession().flush();
			dao.getSession().clear();
			form.reset(mapping, request);
			errors.add("right.insert", new ActionMessage("right.insert.success",TimeTools.getNowTime("HH:mm:ss")));
			
		}catch(Exception e){
			errors.add("right.insert", new ActionMessage("right.insert.failure",TimeTools.getNowTime("HH:mm:ss")));
		}
		
		this.saveErrors(request, errors);
		return mapping.findForward("goaddnewright");
	}
	//负责数据的删除操作
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		try
		{
			RightsDAO dao=new RightsDAO();
			RightForm  fm=(RightForm)form;
			Rights right=dao.findById(fm.getRightid());
			//这里还要把角色权限表中指定角色具有的该权限删除
			
			RolerightsDAO rolerightdao=new  RolerightsDAO();
			//找出拥有该权限的角色
			/*
			List lstroleright=rolerightdao.findByRightid(right);
			Iterator it=lstroleright.iterator();		
			//迭代删除用户该权限的角色权限分配数据
			while(it.hasNext()){
				rolerightdao.delete((Rolerights)it.next());
			}
			*/		
			//一定要先删除关联表。再删除主表中数据
			dao.deleteById(fm.getRightid());
			dao.getSession().flush();
			dao.getSession().clear();
			//删除rightid==null的rolerights的数据
			rolerightdao.deleteByNullRightID();
			//权限
			ModuleMenu tmpmodule=(ModuleMenu)request.getSession().getAttribute("module");
			ModulesDAO daomod=new ModulesDAO();
			daomod.getSession().clear();
			daomod.getSession().flush();
			Modules module=daomod.findById(tmpmodule.getId());
			//得到模块所有的权限.
			Set setrights=module.getRights();
			RightMenu[]  rm=new RightMenu[setrights.size()];
			
			Object[] obj=setrights.toArray();
			for(int i=0;i<obj.length;i++){
				rm[i]=new RightMenu();
				rm[i].setId(((Rights)obj[i]).getId());
				rm[i].setName(((Rights)obj[i]).getName());
				rm[i].setUrl(((Rights)obj[i]).getUrl());
			}
			//权限排序。
			Arrays.sort(rm,new SortMenu());
			//设置权限菜单到session,便于下步导航
			request.getSession().setAttribute("menu", rm);
			/* 这种做法好像问题很大
			//重新刷新菜单
			//得到当前模块
			Modules tmpmodule=(Modules)request.getSession().getAttribute("module");
			ModulesDAO daomod=new ModulesDAO();
			Modules module=daomod.findById(tmpmodule.getId());
			//得到模块所有的权限.
			Set setrights=module.getRights();
			Object[] obj=setrights.toArray();
			//权限排序。
			Arrays.sort(obj,new SortRights());
			//设置权限菜单到session,便于下步导航
			request.getSession().removeAttribute("module");
			request.getSession().removeAttribute("menu");
			request.getSession().setAttribute("module", module);
			request.getSession().setAttribute("menu", obj);
			*/
		}
		catch(Exception e){
			System.out.println("删除错误");//不进行其他处理
		}
		
		return mapping.findForward("godeleteright");
	}
	//负责数据的更新操作
	public ActionForward update(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		RightForm  fm=(RightForm)form;
		System.out.println(fm.getRightid());
		RightsDAO  dao=new RightsDAO();
		ModulesDAO daomod=new ModulesDAO();
		OperationsDAO daoper= new OperationsDAO();
		Rights right=dao.findById(fm.getRightid());
		List lstmod=daomod.findAll();
		List lstoper=daoper.findAll();
		request.setAttribute("lstmod", lstmod);
		request.setAttribute("lstoper", lstoper);
		ActionMessages errors=new ActionMessages();
		if(validate(fm,errors)){//验证没有通过 			
			errors.add("right.insert", new ActionMessage("right.insert.failure",TimeTools.getNowTime("HH:mm:ss")));
			this.saveErrors(request, errors);
			return mapping.findForward("goupdateright");
		}	
		try{
			//right.setId(fm.getRightid());
			right.setName(fm.getName());
			right.setUrl(fm.getUrl());		
			right.setModuleid(daomod.findById(fm.getModuleid()));
			right.setOperationid(daoper.findById(fm.getOperateid()));
			dao.save(right);//这个地方应该做异常处理			
			errors.add("right.insert", new ActionMessage("right.insert.success",TimeTools.getNowTime("HH:mm:ss")));
			
		}catch(Exception e){
			
			errors.add("right.insert", new ActionMessage("right.insert.failure"));
		}
				
		//request.setAttribute("RightForm", fm);
		this.saveErrors(request, errors);		
		return mapping.findForward("goupdateright");
	}
	//负责显示要修改的权限数据。
	public ActionForward showUpdate(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		//根据form中的rightid查询所在权限
		RightsDAO  daoright=new RightsDAO();
		ModulesDAO daomod=new ModulesDAO();
		OperationsDAO daoper= new OperationsDAO();
		//得到所有模块
		//得到所有的操作-便于修改的时候选择
		List lstmod=daomod.findAll();
		List lstoper=daoper.findAll();
		request.setAttribute("lstmod", lstmod);
		request.setAttribute("lstoper", lstoper);
		RightForm  fm=(RightForm)form;
		
		Rights right=daoright.findById(fm.getRightid());
		fm.setName(right.getName());
		fm.setModuleid(right.getModuleid().getId().intValue());
		fm.setOperateid(right.getOperationid().getId().intValue());
		fm.setUrl(right.getUrl());
		
		request.setAttribute("RightForm", fm);
		
		//定向到修改页面
		return mapping.findForward("goupdaterightui");
	}
}

⌨️ 快捷键说明

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