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

📄 usersaction.java

📁 JSP+Struts+缓存的公司管理系统
💻 JAVA
字号:
//---------------------------------------------------------
// Application: Company Applcation
// Author     : Cao guangxin
// File       : UsersAction.java
//
// Copyright 2006 RelationInfo Software
// Writed at Wed Apr 12 08:58:55 CST 2006
// writed by Eclipse SDK
// Visit http://www.37signals.cn
//---------------------------------------------------------


package net.cn37signals.company.controller;

import java.util.List;
import java.util.MissingResourceException;

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

import net.cn37signals.company.dao.UsersDAO;
import net.cn37signals.company.model.Users;
import net.cn37signals.company.util.CacheManager;
import net.cn37signals.company.util.Pager;

import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
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.util.MessageResources;

public class UsersAction extends Action {
  private org.apache.commons.logging.Log __log = LogFactory.getFactory().getInstance(this.getClass());
  private static  int PAGE_LENGTH = 20;

  public ActionForward execute(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response) {
    ActionForward myforward = null;
    String myaction = mapping.getParameter();

    if (isCancelled(request)) {
      if (__log.isInfoEnabled()) {
        __log.info(" [Users] " + mapping.getAttribute() + " - action was cancelled");
      }
      return mapping.findForward("cancel");
    }
    if (__log.isInfoEnabled()) {
      __log.info(" [Users] action: "+myaction);
    }
    if ("".equalsIgnoreCase(myaction)) {
      myforward = mapping.findForward("failure");
    } else if ("VIEW".equalsIgnoreCase(myaction)) {
      myforward = performView(mapping, form, request, response);
    } else if ("EDIT".equalsIgnoreCase(myaction)) {
      myforward = performEdit(mapping, form, request, response);
    } else if ("ADD".equalsIgnoreCase(myaction)) {
      myforward = performAdd(mapping, form, request, response);
    } else if ("SAVE".equalsIgnoreCase(myaction)) {
      myforward = performSave(mapping, form, request, response);
    } else if ("REMOVE".equalsIgnoreCase(myaction)) {
      myforward = performRemove(mapping, form, request, response);
    } else if ("TRASH".equalsIgnoreCase(myaction)) {
      myforward = performTrash(mapping, form, request, response);
    } else if ("LIST".equalsIgnoreCase(myaction)) {
      myforward = performList(mapping, form, request, response);
    } else if ("SEARCHBYROLE".equalsIgnoreCase(myaction)) {
      myforward = performSearchByRole(mapping, form, request, response);
    } else if ("ADDMEMBER1".equalsIgnoreCase(myaction)) {
      myforward = performAddMember1(mapping, form, request, response);
    } else if ("ADDMEMBER2".equalsIgnoreCase(myaction)) {
      myforward = performAddMember2(mapping, form, request, response);
    } else if ("ADDMEMBER3".equalsIgnoreCase(myaction)) {
      myforward = performAddMember3(mapping, form, request, response);
    } else {
      myforward = mapping.findForward("failure");
    }
    return myforward;
  }


  private ActionForward performList(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    try {
      DataSource ds = getDataSource(request);

      UsersDAO usersDAO = new UsersDAO(ds);

      int offset;
      int length = PAGE_LENGTH;
      String pageOffset = request.getParameter("pager.offset");
      if (pageOffset == null || pageOffset.equals("")) {
        offset = 0;
      } else {
        offset = Integer.parseInt(pageOffset);
      }

      List userss = usersDAO.list(offset, length);

      String[] objKeys = {"Users", "list"};
      String objKey = CacheManager.createKey(objKeys);
      Integer size = (Integer)SizeCacheManager.getCache(objKey);
      if(size == null) {
        size = new Integer(usersDAO.getSize("users", ""));
        SizeCacheManager.putCache(size, objKey, 1);
      }

      String url = request.getContextPath()+"/"+mapping.getPath()+".do";
      String pagerHeader = Pager.generate(offset, size.intValue(), length, url);
      request.setAttribute("pagerHeader", pagerHeader);

      request.setAttribute("USERSS", userss);
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }

    return mapping.findForward("success");
  }

  private ActionForward performView(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    try {
      DataSource ds = getDataSource(request);

      UsersDAO usersDAO = new UsersDAO(ds);

      String login = request.getParameter("login");
      Users users = usersDAO.retrieve(login);
      if (users == null) {
        ActionErrors aes = new ActionErrors();
        aes.add(aes.GLOBAL_ERROR, new ActionError("error.object.notfound", "Users"));
        saveErrors(request, aes);
        if (__log.isErrorEnabled()) {
          __log.error(" [Users] Object not found");
        }
      } else {
        org.apache.commons.beanutils.BeanUtils.populate(form, org.apache.commons.beanutils.BeanUtils.describe(users));
        try {
          form.setSexDisplay("Users.sex."+String.valueOf(users.getSex()));
        } catch (MissingResourceException mre) {
          form.setSexDisplay("not.available");
        }
      }
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }

  private ActionForward performSave(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;

    try {
      DataSource ds = getDataSource(request);

      UsersDAO usersDAO = new UsersDAO(ds);

      Users users = new Users();
      org.apache.commons.beanutils.BeanUtils.populate(users, org.apache.commons.beanutils.BeanUtils.describe(form));
      int strutsAction = form.getStrutsAction();
      if (strutsAction == UsersForm.ADD) {
        String login = users.getLogin();
        if (usersDAO.retrieve(login) == null) {
          usersDAO.insert(users);
        } else {
          sqlDuplicateError(request, "Users");
          return mapping.findForward("failure");
        }
      } else if (strutsAction == UsersForm.EDIT) {
        usersDAO.update(users);
      }
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }

  private ActionForward performEdit(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    form.setStrutsAction(UsersForm.EDIT);
    try {
      DataSource ds = getDataSource(request);

      UsersDAO usersDAO = new UsersDAO(ds);

      String login = request.getParameter("login");

      Users users = usersDAO.retrieve(login);
      org.apache.commons.beanutils.BeanUtils.populate(form, org.apache.commons.beanutils.BeanUtils.describe(users));
      form.setPassword2(users.getPassword());
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }

  private ActionForward performAdd(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    form.setStrutsAction(UsersForm.ADD);
    return mapping.findForward("success");
  }
  private ActionForward performRemove(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    return performView(mapping, actionForm, request, response);
  }

  private ActionForward performTrash(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    try {
      DataSource ds = getDataSource(request);

      UsersDAO usersDAO = new UsersDAO(ds);

      String login = request.getParameter("login");
      usersDAO.delete(login);
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }
  private ActionForward performSearchByRole(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    try {
      DataSource ds = getDataSource(request);

      UsersDAO usersDAO = new UsersDAO(ds);
      int offset;
      int length = PAGE_LENGTH;
      String pageOffset = request.getParameter("pager.offset");
      if (pageOffset == null || pageOffset.equals("")) {
        offset = 0;
      } else {
        offset = Integer.parseInt(pageOffset);
      }

      String role = form.getRole();
      String[] objKeys = {"Users", "SearchByRole", String.valueOf(role)};
      String objKey = CacheManager.createKey(objKeys);
      Integer size = (Integer)SizeCacheManager.getCache(objKey);
      if(size == null) {
        size = new Integer(usersDAO.getSize("users", ""));
        SizeCacheManager.putCache(size, objKey, 1);
      }
      List userss = usersDAO.SearchByRole(offset, length, role);
      String url = request.getContextPath()+"/"+mapping.getPath()+".do"+"?role="+role;
      String pagerHeader = Pager.generate(offset, size.intValue(), length, url);
      request.setAttribute("pagerHeader", pagerHeader);

      request.setAttribute("USERSS", userss);
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }

    return mapping.findForward("success");
  }


  private ActionForward performAddMember1(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    String strutsButton = form.getStrutsButton();
    try {
      MessageResources prop = getResources(request);
      // process code here
      if(strutsButton.equals(prop.getMessage("label.continue"))) {
        // continue action here
        return mapping.findForward("continue");
      } else if(strutsButton.equals(prop.getMessage("label.back"))) {
        // back action here
        return mapping.findForward("back");
      } else if(strutsButton.equals(prop.getMessage("label.cancel"))) {
        return mapping.findForward("cancel");
      }
      return mapping.findForward("failure");
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
  }
  private ActionForward performAddMember2(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    String strutsButton = form.getStrutsButton();
    try {
      MessageResources prop = getResources(request);
      // process code here
      if(strutsButton.equals(prop.getMessage("label.continue"))) {
        // continue action here
        return mapping.findForward("continue");
      } else if(strutsButton.equals(prop.getMessage("label.back"))) {
        // back action here
        return mapping.findForward("back");
      } else if(strutsButton.equals(prop.getMessage("label.cancel"))) {
        return mapping.findForward("cancel");
      }
      return mapping.findForward("failure");
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
  }
  private ActionForward performAddMember3(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    UsersForm form = (UsersForm) actionForm;
    String strutsButton = form.getStrutsButton();
    try {
      MessageResources prop = getResources(request);
      // process code here
      if(strutsButton.equals(prop.getMessage("label.continue"))) {
        // continue action here
        return mapping.findForward("continue");
      } else if(strutsButton.equals(prop.getMessage("label.back"))) {
        // back action here
        return mapping.findForward("back");
      } else if(strutsButton.equals(prop.getMessage("label.cancel"))) {
        return mapping.findForward("cancel");
      }
      return mapping.findForward("failure");
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
  }

  private void sqlDuplicateError(HttpServletRequest request, String objName) {
    ActionErrors aes = new ActionErrors();
    aes.add(aes.GLOBAL_ERROR, new ActionError("errors.database.duplicate", objName));
    saveErrors(request, aes);
    if (__log.isErrorEnabled()) {
      __log.error(" [Users] Duplicate key Error - " + objName);
    }
  }

  private void generalError(HttpServletRequest request, Exception e) {
    ActionErrors aes = new ActionErrors();
    aes.add(aes.GLOBAL_ERROR, new ActionError("error.general", e.getMessage()));
    saveErrors(request, aes);
    e.printStackTrace();
    if (__log.isErrorEnabled()) {
      __log.error(" [Users] Error - " + e.getMessage());
    }
  }
}

⌨️ 快捷键说明

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