classesaction.java
来自「Java企业级开发项目实践,这是他的附光盘」· Java 代码 · 共 228 行
JAVA
228 行
//---------------------------------------------------------
// Application: eShop of Network
// Author : eSingle
// File : ClassesAction.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 ClassesAction 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();//取得当前读者的Action
if (isCancelled(request)) {
if (__log.isInfoEnabled()) {
__log.info(" [Classes] " + mapping.getAttribute() + " - action was cancelled");
}
return mapping.findForward("cancel");
}
if (__log.isInfoEnabled()) {
__log.info(" [Classes] action: "+myaction);
}
//根据myaciton的值,来执行不同的方法
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);
ClassesDAO classesDAO = new ClassesDAO(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 classess = classesDAO.list(offset, length);//分页显示商品类别
String[] objKeys = {"Classes", "list"};
String objKey = CacheManager.createKey(objKeys);
Integer size = (Integer)SizeCacheManager.getCache(objKey);
if(size == null) {
size = new Integer(classesDAO.getSize("classes", ""));
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("CLASSESS", classess);
} 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) {
ClassesForm form = (ClassesForm) actionForm;
try {
DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);
ClassesDAO classesDAO = new ClassesDAO(ds);
String typesname = request.getParameter("typesname");
Classes classes = classesDAO.retrieve(typesname);//检索商品类别
//如果当前Classes为null时,显示错误信息
if (classes == null) {
ActionErrors aes = new ActionErrors();
aes.add(aes.GLOBAL_ERROR, new ActionError("error.object.notfound", "Classes"));
saveErrors(request, aes);
if (__log.isErrorEnabled()) {
__log.error(" [Classes] Object not found");
}
} else {
org.apache.commons.beanutils.BeanUtils.populate(form, org.apache.commons.beanutils.BeanUtils.describe(classes));//将Classes模型中的值存储
}
} 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) {
ClassesForm form = (ClassesForm) actionForm;
try {
DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);
ClassesDAO classesDAO = new ClassesDAO(ds);
Classes classes = new Classes();
org.apache.commons.beanutils.BeanUtils.populate(classes, org.apache.commons.beanutils.BeanUtils.describe(form));
int strutsAction = form.getStrutsAction();
if (strutsAction == ClassesForm.ADD) {
String typesname = classes.getTypesname();
if (classesDAO.retrieve(typesname) == null) {
classesDAO.insert(classes);//增加商品类别
} else {
sqlDuplicateError(request, "Classes");
return mapping.findForward("failure");
}
} else if (strutsAction == ClassesForm.EDIT) {
classesDAO.update(classes);//更新商品类别
}
} 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) {
ClassesForm form = (ClassesForm) actionForm;
form.setStrutsAction(ClassesForm.EDIT);
try {
DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);
ClassesDAO classesDAO = new ClassesDAO(ds);
String typesname = request.getParameter("typesname");
Classes classes = classesDAO.retrieve(typesname);//检索商品类别记录
org.apache.commons.beanutils.BeanUtils.populate(form, org.apache.commons.beanutils.BeanUtils.describe(classes));
} 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) {
ClassesForm form = (ClassesForm) actionForm;
form.setStrutsAction(ClassesForm.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) {
ClassesForm form = (ClassesForm) actionForm;
try {
DataSource ds = (DataSource) servlet.getServletContext().getAttribute(Action.DATA_SOURCE_KEY);
ClassesDAO classesDAO = new ClassesDAO(ds);
String typesname = request.getParameter("typesname");
classesDAO.delete(typesname);//删除商品类别
} 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(" [Classes] 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(" [Classes] Error - " + e.getMessage());
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?