首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Controller效能封装

2012-08-28 
Controller功能封装import cn.org.rapid_framework.beanutils.BeanUtilsimport cn.org.rapid_framework.p

Controller功能封装

import cn.org.rapid_framework.beanutils.BeanUtils;import cn.org.rapid_framework.page.Page;import cn.org.rapid_framework.page.PageRequest;import com.iloosen.imall.commons.util.ConvertRegisterHelper;import com.iloosen.imall.commons.util.PageRequestFactory;import org.springframework.ui.ModelMap;import org.springframework.util.Assert;import org.springframework.util.ReflectionUtils;import javax.servlet.http.HttpServletRequest;/** * 标准的rest方法列表 * <pre> * /userinfo                => index()   * /userinfo/new            => _new()  注意: 不使用/userinfo/add => add()的原因是ad会被一些浏览器当做广告URL拦截 * /userinfo/{id}           => show()   * /userinfo/{id}/edit      => edit()   * /userinfo        POST    => create()   * /userinfo/{id}   PUT     => update()   * /userinfo/{id}   DELETE  => delete()   * /userinfo        DELETE  => batchDelete()   * </pre> *  * @author badqiu */public class BaseRestSpringController<Entity,PK> {    protected static final String CREATED_SUCCESS = "创建成功";    protected static final String UPDATE_SUCCESS = "更新成功";    protected static final 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);    }        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", Integer.valueOf(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;    }    public void setSuccess(ModelMap model){        model.put("success","true");    }    public void setFailure(ModelMap model){        model.put("success","false");    }}

热点排行