package com.company.project.common.util;
import javax.servlet.http.HttpServletRequest;
import org.springframework.ui.ModelMap;
import org.springframework.util.Assert;
import org.springframework.util.ReflectionUtils;
import cn.org.rapid_framework.page.Page;
import cn.org.rapid_framework.page.PageRequest;
public class SpringMVCUtils {
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;
}
}