先定义数据类型
package com.whereta.common;/** * created by vincent on 15-9-24. */public enum javabasictypeenum { string(string.class), integer(integer.class), boolean(boolean.class), byte(byte.class), long(long.class), short(short.class), float(float.class), double(double.class), char(character.class); private class sclass; javabasictypeenum(class sclass) { this.sclass = sclass; } protected static boolean isbasictype(class sclass) { for (javabasictypeenum en : javabasictypeenum.values()) { class aclass = en.getsclass(); if (aclass.equals(sclass)) { return true; } } return false; } public class getsclass() { return sclass; } public void setsclass(class sclass) { this.sclass = sclass; }}
数据类型判断
package com.whereta.common;import java.util.*;/** * created by vincent on 15-9-24. */public class javatypeutils { /** * 判断是否是基本类型 * @param obj 输入对象 * @return */ public static boolean isbasictype(object obj){ boolean isbasictype = javabasictypeenum.isbasictype(obj.getclass()); return isbasictype; } /** * 判断是否是数组 * @param obj * @return */ public static boolean isarray(object obj){ return obj.getclass().isarray(); } /** * 判断是否是集合 * @param obj * @return */ public static boolean iscollection(object obj){ set classset = getallextendandimplementsclass(obj.getclass()); for(class c:classset){ if(c.equals(collection.class)){ return true; } } return false; } private static set getallextendandimplementsclass(class c){ set classset=new hashset(); //获取接口 class[] interfaces = c.getinterfaces(); if(interfaces!=null) { classset.addall(arrays.aslist(interfaces)); for(class in:interfaces){ classset.addall(getallextendandimplementsclass(in)); } } //获取父类 class superclass = c.getsuperclass(); if(superclass!=null) { classset.add(superclass); classset.addall(getallextendandimplementsclass(superclass)); } return classset; } /** * 判断是否是list * @param obj * @return */ public static boolean islist(object obj){ set classset = getallextendandimplementsclass(obj.getclass()); for(class c:classset){ if(c.equals(list.class)){ return true; } } return false; } /** * 判断是否是map * @param obj * @return */ public static boolean ismap(object obj){ set classset = getallextendandimplementsclass(obj.getclass()); for(class c:classset){ if(c.equals(map.class)){ return true; } } return false; }}
数据处理
package com.whereta.common;import org.apache.commons.lang3.stringescapeutils;import java.lang.reflect.field;import java.util.*;/** * created by vincent on 15-9-24. */public class htmlobjutil { /** * 将页面提交的数据字符串进行替换,防止出现页面混乱 * @param param * @return * @throws illegalaccessexception */ public static object replacestringhtml(object param) throws illegalaccessexception { if (param != null) { if (javatypeutils.isbasictype(param)) { if (param.getclass().equals(javabasictypeenum.string.getsclass())) { return stringescapeutils.escapehtml4(param.tostring()); } return param; } if (javatypeutils.isarray(param)) { object[] objectarray = (object[]) param; for (int i = 0; i =24){ continue; } object o = field.get(param); if(o==null){ continue; } object replaceobj = replacestringhtml(o); if (replaceobj.getclass().equals(javabasictypeenum.long.getsclass())) { field.setlong(param, (long) (replaceobj)); } else if (replaceobj.getclass().equals(javabasictypeenum.boolean.getsclass())) { field.setboolean(param, (boolean) replaceobj); } else if (replaceobj.getclass().equals(javabasictypeenum.byte.getsclass())) { field.setbyte(param, (byte) replaceobj); } else if (replaceobj.getclass().equals(javabasictypeenum.char.getsclass())) { field.setchar(param, (character) replaceobj); } else if (replaceobj.getclass().equals(javabasictypeenum.double.getsclass())) { field.setdouble(param, (double) replaceobj); } else if (replaceobj.getclass().equals(javabasictypeenum.float.getsclass())) { field.setfloat(param, (float) replaceobj); } else if (replaceobj.getclass().equals(javabasictypeenum.integer.getsclass())) { field.setint(param, (integer) replaceobj); } else if (replaceobj.getclass().equals(javabasictypeenum.short.getsclass())) { field.setshort(param, (short) replaceobj); } else { field.set(param, replaceobj); } } return param; } return param; }}
通过递归,不断寻找字符串类型的数据转义
git地址:https://git.oschina.net/junyue/javautils