Package javacommon.base

Source Code of javacommon.base.BaseSpringController

package javacommon.base;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.util.Date;

import javacommon.util.ConvertRegisterHelper;
import javacommon.util.PageRequestFactory;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.beans.propertyeditors.CustomNumberEditor;
import org.springframework.ui.ModelMap;
import org.springframework.util.Assert;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import cn.org.rapid_framework.beanutils.BeanUtils;
import cn.org.rapid_framework.page.Page;
import cn.org.rapid_framework.page.PageRequest;

import com.sun.jmx.snmp.Timestamp;

public class BaseSpringController extends MultiActionController{
  protected final static String CREATED_SUCCESS = "创建成功";
  protected final static String UPDATE_SUCCESS = "更新成功";
  protected final static String DELETE_SUCCESS = "删除成功";
 
  static {
    //注册converters
    ConvertRegisterHelper.registerConverters();
  }
 
  public static void copyProperties(Object target,Object source) {
    BeanUtils.copyProperties(target, source);
  }

  public static <T> T copyProperties(Class<T> destClass,Object orig) {
    return BeanUtils.copyProperties(destClass, orig);
  }
 
    /**
     * 初始化binder的回调函数.
     *
     * @see MultiActionController#createBinder(HttpServletRequest,Object)
     */
    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) {
      binder.registerCustomEditor(Short.class, new CustomNumberEditor(Short.class, true));
        binder.registerCustomEditor(Integer.class, new CustomNumberEditor(Integer.class, true));
        binder.registerCustomEditor(Long.class, new CustomNumberEditor(Long.class, true));
        binder.registerCustomEditor(Float.class, new CustomNumberEditor(Float.class, true));
        binder.registerCustomEditor(Double.class, new CustomNumberEditor(Double.class, true));
        binder.registerCustomEditor(BigDecimal.class, new CustomNumberEditor(BigDecimal.class, true));
        binder.registerCustomEditor(BigInteger.class, new CustomNumberEditor(BigInteger.class, true));
       
        binder.registerCustomEditor(java.util.Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
       
    }
 
  public static ModelMap toModelMap(Page page,PageRequest pageRequest) {
    return toModelMap("",page, pageRequest);
  }
 
  public static ModelMap toModelMap(String tableId,Page page,PageRequest pageRequest) {
    ModelMap model = new ModelMap();
    saveIntoModelMap(tableId,page,pageRequest,model);
    return model;
  }
  /**
   * 用于一个页面有多个extremeTable是使用
   * @param tableId 等于extremeTable的tableId属性
   */
  public static void saveIntoModelMap(String tableId,Page page,PageRequest pageRequest,ModelMap model){
    Assert.notNull(tableId,"tableId must be not null");
    Assert.notNull(page,"page must be not null");
   
    model.addAttribute(tableId+"page", page);
    model.addAttribute(tableId+"totalRows", new Integer(page.getTotalCount()));
    model.addAttribute(tableId+"pageRequest", pageRequest);
    model.addAttribute(tableId+"query", pageRequest);
  }
 
  public static PageRequest bindPageRequest(HttpServletRequest request,PageRequest pageRequest,String defaultSortColumns){
    return PageRequestFactory.bindPageRequest(pageRequest,request, defaultSortColumns);
    }
 
  public static <T> T getOrCreateRequestAttribute(HttpServletRequest request, String key,Class<T> clazz) {
    Object value = request.getAttribute(key);
    if(value == null) {
      try {
        value = clazz.newInstance();
      } catch (Exception e) {
        ReflectionUtils.handleReflectionException(e);
      }
      request.setAttribute(key, value);
    }
    return (T)value;
  }
 
}
TOP

Related Classes of javacommon.base.BaseSpringController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.