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

📄 functionaction.java

📁 Java开发的权限管理的例子
💻 JAVA
字号:
package org.artemis.manager.struts.action;

import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import com.gsta.eshore.framework.daoutil.CriteriaQuery;
import com.gsta.eshore.framework.daoutil.HqlQuery;
import com.gsta.eshore.framework.daoutil.PageSupport;
import com.gsta.eshore.framework.jcf.IState;
import com.gsta.eshore.framework.jcf.StateImpl;
import com.gsta.eshore.framework.util.AppUtils;
import org.artemis.manager.common.Constants;
import org.artemis.manager.struts.form.FunctionForm;
import org.artemis.manager.struts.form.PermissionForm;
import org.artemis.right.model.Function;
import org.artemis.right.model.Permission;
import org.artemis.right.model.PerssionId;
import org.artemis.right.model.Role;

/** 
 * @author hewenqiang Jul 25, 2006 2:47:43 PM
 */
public class FunctionAction extends DelegateAction {
	private static Logger logger = Logger.getLogger(FunctionAction.class);
	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward executeAction(
			
		ActionMapping mapping,
		ActionForm form,
		HttpServletRequest request,
		HttpServletResponse response) {
		ActionForward myforward = null;
		String myaction = mapping.getParameter();
		logger.info(" FunctionAction action Name: " + myaction);
		if (isCancelled(request)) {
			if (logger.isInfoEnabled()) {
				logger.info(" FunctionAction " + mapping.getAttribute()
						+ " - action was cancelled");
			}
			return mapping.findForward("cancel");
		}

		if (AppUtils.isBlank(myaction)) {
			myforward = mapping.findForward("error");
		} else if ("listFunction".equalsIgnoreCase(myaction)) {
			myforward = listFunction(mapping, form, request, response);
		}else if("save".equalsIgnoreCase(myaction)){
			myforward=save( mapping,form,request,response);
		} else if ("updateFunctionById".equalsIgnoreCase(myaction)) {
			myforward = updateFunctionById(mapping, form, request, response);
		} else if ("deleteFunctionById".equalsIgnoreCase(myaction)) {
			myforward = deleteFunctionById(mapping, form, request, response);
		} else if ("findFunctionByRole".equalsIgnoreCase(myaction)) {
			myforward = findFunctionByRole(mapping, form, request, response);
		}else if("findFunctionById".equalsIgnoreCase(myaction)){
			myforward=findFunctionById( mapping,form,request,response);
		}else if("saveFunctionsToRoleList".equalsIgnoreCase(myaction)){
			myforward=saveFunctionsToRoleList( mapping,form,request,response);
		}else if("findOtherFunctionByHql".equalsIgnoreCase(myaction)){
			myforward=findOtherFunctionByHql( mapping,form,request,response);
		}
		else {
			myforward = mapping.findForward("error");
		}

		return myforward;
	}

	private ActionForward findOtherFunctionByHql(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String curPageNO = request.getParameter("curPageNO");
		String roleId = request.getParameter("roleId");
		String myAction="findOtherFunctionByHql.do";
		if(roleId!=null)
			myAction="findOtherFunctionByHql.do?roleId="+roleId;
		try {
			//HQL查找方式
			HqlQuery hq=new HqlQuery(myAction);
			hq.setCurPage(curPageNO);
			hq.setPageSize(Constants.PAGE_SIZE);
			IState state=new StateImpl();
			Role role=getBiz().findRoleById(roleId, state);
			PageSupport ps= (PageSupport)getBiz().findOtherFunctionByHql(hq, roleId, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			request.setAttribute("curPageNO",new Integer(ps.getCurPageNO()));
			request.setAttribute("offset", new Integer(ps.getOffset()+1));
			if(!AppUtils.isBlank(ps.getResultList()))
			request.setAttribute("toolBar", ps.getToolBar());
			request.setAttribute("functionList", ps.getResultList());
			request.setAttribute("role", role);
		}catch (Exception e){
			return handleException(mapping, request, e, "FunctionAction's findOtherFunctionByHql");
		}
		return mapping.findForward("view");
	}

	private ActionForward saveFunctionsToRoleList(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String roleId=request.getParameter("roleId");
		List permissions=new ArrayList();
		PermissionForm permissionForm = (PermissionForm) form;
		String[] strArray = permissionForm.getStrArray();
		for (int i = 0; i < strArray.length; i++) {
			Permission permission=new Permission();
			PerssionId perssionId=new PerssionId();
			perssionId.setRoleId(roleId);
			perssionId.setFunctionId(strArray[i]);
			permission.setId(perssionId);
			permissions.add(permission);
		}
		removeRequestAttribute(mapping,request);
		IState state=new StateImpl();
		try {
			getBiz().saveFunctionsToRole(permissions, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			return handleException(mapping, request, e, "FunctionAction's saveFunctionToRoleList");
		}
		return mapping.findForward("view");
		
	}

	private ActionForward updateFunctionById(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		logger.debug("Struts FunctionAction updateFunctionById");
		FunctionForm functionForm = (FunctionForm) form;
		IState state=new StateImpl();
		try {
			getBiz().updateFunction(functionForm.getFunction(), state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			return handleException(mapping, request, e, "FunctionAction's save");
		}
		return mapping.findForward("list");
	}

	private ActionForward listFunction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String curPageNO = request.getParameter("curPageNO");
		String myaction;
		String search=request.getParameter("search");
		//String myform="forms[0]";
		if(search==null){
			search="";
			myaction="listFunction.do";
		}else{
			myaction="listFunction.do?search="+search;
		}
		
			
		try {
			//Qbc查找方式
			CriteriaQuery cq=new CriteriaQuery(Function.class,curPageNO,myaction);
			cq.setPageSize(Constants.PAGE_SIZE);
			if(!AppUtils.isBlank(search)){
				cq.like("name","%"+search+"%");//1
				cq.add();
			}
			IState state=new StateImpl();
			PageSupport ps= (PageSupport)getBiz().findAllFunction(cq, state);
			request.setAttribute("search",search);
			request.setAttribute("curPageNO",new Integer(ps.getCurPageNO()));
			request.setAttribute("offset", new Integer(ps.getOffset()+1));
			request.setAttribute("functionList", ps.getResultList());
			if(!AppUtils.isBlank(ps.getResultList()))
			    request.setAttribute("toolBar", ps.getToolBar());
		}catch (Exception e){
			return handleException(mapping, request, e, "FunctionAction's listFunction");
		}
		    return mapping.findForward("functionList");
	}


	
	private ActionForward findFunctionByRole(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String roleId=request.getParameter("roleId");
		logger.info("Struts FunctionAction findFunctionByRole with roleId  "+roleId);
		IState state=new StateImpl();
		removeRequestAttribute(mapping,request);
		try {
			Role role=getBiz().findRoleById(roleId, state);
			List list=getBiz().findFunctionByRoleId(roleId, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			    request.setAttribute("list",list);
			    request.setAttribute("role", role);
		} catch (Exception e) {
			    return handleException(mapping, request, e, "RoleAction's findFunctionByRole");
		}
		
		return mapping.findForward("view");
	}

	private ActionForward deleteFunctionById(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String id=request.getParameter("id");
		logger.info("Struts Action deleteFunctionById with id  "+id);
		IState state=new StateImpl();
		try {
			
			boolean result=getBiz().deleteFunctionById(id, state);
			logger.debug("deleteFunctionById result  = "+result);
			if(!state.isOK()||!result)
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			    return handleException(mapping, request, e, "FunctionAction's deleteFunction");
		}
		return mapping.findForward("list");
	}
	
	private ActionForward findFunctionById(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String id=request.getParameter("id");
		logger.info("Struts Action findFunctionById with id  "+id);
		IState state=new StateImpl();
		try {
			Function function=getBiz().findFunctionById(id, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			    request.setAttribute("function",function);
		} catch (Exception e) {
			return handleException(mapping, request, e, "FunctionAction's findFunctionById");
		}
		
		return mapping.findForward("view");
	}
	
	private ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		FunctionForm functionForm = (FunctionForm) form;
		IState state=new StateImpl();
		try {
			String id=getBiz().saveFunction(functionForm.getFunction(), state);
			logger.info("success saveFunction,id = "+id);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			return handleException(mapping, request, e, "FunctionAction's save");
		}
		return mapping.findForward("list");
	}
}

⌨️ 快捷键说明

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