/** * [Copyright] * Copyright © 2011 ketaYao All Rights Reserved. * [Information] * Author:ketaYao * Date:2011-1-14 Version:1.0.0 * */ package com.ketayao.controller; import java.text.DecimalFormat; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.springframework.validation.BindException; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.servlet.ModelAndView; import com.ketayao.dao.CategoryDao; import com.ketayao.entities.Category; import com.ketayao.util.config.SystemConstant; /** * <b>Summary: </b> * 栏目控制管理。 * <b>Remarks: </b> * 栏目控制管理。 */ public class ManageCategoryDelegate { private CategoryDao categoryDao; /** * 栏目树页面 */ private String treeView; /** * 栏目管理页面 */ private String categoryView; /** * 栏目编码的码位,默认为3位 */ private final static int CODE_SEPARATOR = SystemConstant.CODE_SEPARATOR * -1; /** * iframe跳转页面 */ private String iframeView; /** * 栏目验证器 */ private Validator validator; /** * * <b>Summary: </b> * add(请用一句话描述这个方法的作用) * @param request * @param response * @return */ public ModelAndView add(HttpServletRequest request, HttpServletResponse response, Category category) throws Exception{ ServletRequestDataBinder binder = new ServletRequestDataBinder(category, "command"); //binder.bind(request); BindException errors = new BindException(binder.getBindingResult()); ValidationUtils.invokeValidator(validator, category, errors); if (errors.hasErrors()) { System.out.println(request.getC); return new ModelAndView(categoryView, errors.getModel()); } String parentId = request.getParameter("parentId"); if (parentId == null || parentId.equals("")) { parentId = "001";// 默认根节点 } // 得到最后一个栏目 Category lastCategory = categoryDao.getLastSubCategoriesByCode(parentId); if (lastCategory == null) { category.setCode(parentId + "001"); } else { String code = parentId; String _child = StringUtils.substring(lastCategory.getCode(), CODE_SEPARATOR); // 最后一个栏目编码加一 int child = Integer.parseInt(_child); child += 1; DecimalFormat df = new DecimalFormat("000"); code += df.format(child); category.setCode(code); } category.setCreateTime(new Date()); category.setModifyTime(new Date()); categoryDao.add(category); ModelAndView mav = new ModelAndView(categoryView); mav.addObject("list", categoryDao.searchByCode(parentId)); mav.addObject("pCategory", categoryDao.findByCode(parentId)); return mav; } /** * * <b>Summary: </b> * modify(请用一句话描述这个方法的作用) * @param request * @param response * @return */ public ModelAndView modify(HttpServletRequest request, HttpServletResponse response) { String _ids = request.getParameter("ids"); String[] ids = _ids.split(","); for (int i = 0; i < ids.length; i++) { int id =Integer.parseInt(ids[i]); if (!categoryDao.hasSubCategories(id)) { //categoryDao.delete(id); System.out.println("delete id is :" + id); //TODO 启用删除 } } String parentId = request.getParameter("parentId"); if (parentId == null || parentId.equals("")) { parentId = "001";// 默认根节点 } ModelAndView mav = new ModelAndView(categoryView); mav.addObject("list", categoryDao.searchByCode(parentId)); mav.addObject("pCategory", categoryDao.findByCode(parentId)); return mav; } /** * <b>Summary: </b> * 获取categoryDao的值 * @return categoryDao */ public CategoryDao getCategoryDao() { return categoryDao; } /** * <b>Summary: </b> * 设置 categoryDao 的值 * @param categoryDao */ public void setCategoryDao(CategoryDao categoryDao) { this.categoryDao = categoryDao; } /** * <b>Summary: </b> * 获取treeView的值 * @return treeView */ public String getTreeView() { return treeView; } /** * <b>Summary: </b> * 设置 treeView 的值 * @param treeView */ public void setTreeView(String treeView) { this.treeView = treeView; } /** * <b>Summary: </b> * 获取categoryView的值 * @return categoryView */ public String getCategoryView() { return categoryView; } /** * <b>Summary: </b> * 设置 categoryView 的值 * @param categoryView */ public void setCategoryView(String categoryView) { this.categoryView = categoryView; } /** * <b>Summary: </b> * 获取iframeView的值 * @return iframeView */ public String getIframeView() { return iframeView; } /** * <b>Summary: </b> * 设置 iframeView 的值 * @param iframeView */ public void setIframeView(String iframeView) { this.iframeView = iframeView; } /** * <b>Summary: </b> * 获取validator的值 * @return validator */ public Validator getValidator() { return validator; } /** * <b>Summary: </b> * 设置 validator 的值 * @param validator */ public void setValidator(Validator validator) { this.validator = validator; } } 不使用代理,继承MultiActionController做法类似。