123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package com.iamberry.rst.utils;
- import com.iamberry.rst.core.page.PagedResult;
- import org.springframework.web.servlet.ModelAndView;
- import java.lang.reflect.Field;
- import java.util.*;
- public class StitchAttrUtil {
-
- public final static String noProperty[] = {
- "serialVersionUID",
- "awaitingSignclosedProductInfoList",
- "signclosedProductInfoList"
- };
- public static Set<String> propertySet = new HashSet<String>(Arrays.asList(noProperty));
-
- public static void setModelAndView(Object object, ModelAndView modelAndView, String url, PagedResult<?> pagedResult) {
- StringBuilder sb = new StringBuilder(url);
- if(pagedResult.getTotal() != 0) {
- pagedResult.setPages((int) Math.ceil((double)pagedResult.getTotal()/pagedResult.getPageSize()));
- }
- sb.append("?pageSize=" + pagedResult.getPageSize());
- sb.append("&totalNum=" + pagedResult.getTotal() );
- StitchAttrUtil.setUrlByObj(sb,object);
- sb.append("&&pageNO=");
- Map<String, Object> map = StitchAttrUtil.getObjToMap(object);
- modelAndView.addAllObjects(map);
- modelAndView.addObject("page", pagedResult);
- modelAndView.addObject("url", sb.toString());
- return;
- }
-
- public static Map<String, Object> getObjToMap(Object object) {
- Map<String, Object> map = new HashMap<>();
- Class<?> clazz = object.getClass();
- for (Field field : clazz.getDeclaredFields()) {
- field.setAccessible(true);
- String fieldName = field.getName();
- Object value = null;
- try {
- value = field.get(object);
- }catch (IllegalAccessException e){
- }
- if (value != null && !propertySet.contains(fieldName)) {
- map.put(fieldName, value);
- }
- }
- return map;
- }
-
- public static void setUrlByObj(StringBuilder sb,Object object){
- Class<?> clazz = object.getClass();
- for (Field field : clazz.getDeclaredFields()) {
- field.setAccessible(true);
- String fieldName = field.getName();
- Object value = null;
- try {
- value = field.get(object);
- }catch (IllegalAccessException e){
- }
- if (value != null && !propertySet.contains(fieldName)) {
- sb.append("&"+fieldName+ "=" + value.toString());
- }
- }
- }
-
- public static void addNoPro(String...pros){
- for(String pro : pros){
- if(pro != null && !"".equals(pro))
- propertySet.add(pro);
- }
- }
- }
|