📄 rightaction.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 + -