productsaction.java

来自「Java企业级开发项目实践,这是他的附光盘」· Java 代码 · 共 235 行

JAVA
235
字号
//---------------------------------------------------------
// Application: eShop of Network
// Author     : eSingle
// File       : ProductsAction.java
//
// Copyright 2002 LandSoft Corp.
// Generated at Mon Nov 18 20:15:26 CST 2002
// Created by caoguangxin
// mailto:gxcao@mail.tsinghua.edu.cn
//---------------------------------------------------------

//定义包名
package com.landsoft.eshop.controller;
//引用类包
import javax.sql.*;
import java.util.*;
import org.apache.commons.logging.LogFactory;
import javax.servlet.http.*;
import javax.servlet.*;
import org.apache.struts.action.*;
import org.apache.struts.util.*;
import com.landsoft.eshop.model.*;
import com.landsoft.eshop.dao.*;
import com.landsoft.eshop.util.*;

public class ProductsAction extends Action {
//定义类实例
  private org.apache.commons.logging.Log __log = LogFactory.getFactory().getInstance(this.getClass());
  private static final 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(" [Products] " + mapping.getAttribute() + " - action was cancelled");
      }
      return mapping.findForward("cancel");
    }
    if (__log.isInfoEnabled()) {
      __log.info(" [Products] action: "+myaction);
    }
    //根据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 {
      myforward = mapping.findForward("failure");
    }
    return myforward;
  }

//定义浏览商品的Action
  private ActionForward performList(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    try {
      DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);

      ProductsDAO productsDAO = new ProductsDAO(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 productss = productsDAO.list(offset, length);//分页显示商品

      String[] objKeys = {"Products", "list"};
      String objKey = CacheManager.createKey(objKeys);
      Integer size = (Integer)SizeCacheManager.getCache(objKey);
      if(size == null) {
        size = new Integer(productsDAO.getSize("products", ""));
        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("PRODUCTSS", productss);
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }

    return mapping.findForward("success");
  }
//定义查看商品的Action
  private ActionForward performView(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    ProductsForm form = (ProductsForm) actionForm;
    try {
      DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);

      ProductsDAO productsDAO = new ProductsDAO(ds);

      String productname = request.getParameter("productname");
      String typesname = request.getParameter("typesname");
      String salename = request.getParameter("salename");
      Products products = productsDAO.retrieve(productname, typesname, salename);//检索商品数据
      if (products == null) {
        ActionErrors aes = new ActionErrors();
        aes.add(aes.GLOBAL_ERROR, new ActionError("error.object.notfound", "Products"));
        saveErrors(request, aes);
        if (__log.isErrorEnabled()) {
          __log.error(" [Products] Object not found");
        }
      } else {
        org.apache.commons.beanutils.BeanUtils.populate(form, org.apache.commons.beanutils.BeanUtils.describe(products));
      }
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }
//定义保存商品的Action
  private ActionForward performSave(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    ProductsForm form = (ProductsForm) actionForm;

    try {
      DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);

      ProductsDAO productsDAO = new ProductsDAO(ds);

      Products products = new Products();
      org.apache.commons.beanutils.BeanUtils.populate(products, org.apache.commons.beanutils.BeanUtils.describe(form));
      int strutsAction = form.getStrutsAction();
      if (strutsAction == ProductsForm.ADD) {
        String productname = products.getProductname();
        String typesname = products.getTypesname();
        String salename = products.getSalename();
        if (productsDAO.retrieve(productname, typesname, salename) == null) {
          productsDAO.insert(products);//增加商品
        } else {
          sqlDuplicateError(request, "Products");
          return mapping.findForward("failure");
        }
      } else if (strutsAction == ProductsForm.EDIT) {
        productsDAO.update(products);//更新商品
      }
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }
//定义编辑商品的Action
  private ActionForward performEdit(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    ProductsForm form = (ProductsForm) actionForm;
    form.setStrutsAction(ProductsForm.EDIT);
    try {
      DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);

      ProductsDAO productsDAO = new ProductsDAO(ds);

      String productname = request.getParameter("productname");
      String typesname = request.getParameter("typesname");
      String salename = request.getParameter("salename");

      Products products = productsDAO.retrieve(productname, typesname, salename);
      org.apache.commons.beanutils.BeanUtils.populate(form, org.apache.commons.beanutils.BeanUtils.describe(products));
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }
//定义增加商品的Action
  private ActionForward performAdd(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    ProductsForm form = (ProductsForm) actionForm;
    form.setStrutsAction(ProductsForm.ADD);//设置strutsAction为ADD
    return mapping.findForward("success");
  }
//定义删除商品的Action  
  private ActionForward performRemove(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    return performView(mapping, actionForm, request, response);
  }
//定义彻底删除商品的Action
  private ActionForward performTrash(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
    ProductsForm form = (ProductsForm) actionForm;
    try {
      DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);

      ProductsDAO productsDAO = new ProductsDAO(ds);

      String productname = request.getParameter("productname");
      String typesname = request.getParameter("typesname");
      String salename = request.getParameter("salename");
      productsDAO.delete(productname, typesname, salename);//删除商品
    } catch (Exception e) {
      generalError(request, e);
      return mapping.findForward("failure");
    }
    return mapping.findForward("success");
  }

//定义捕获增加重复的商品的错误信息
  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(" [Products] 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(" [Products] Error - " + e.getMessage());
    }
  }
}

⌨️ 快捷键说明

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