【Util类:将对象中所有的String类型字段转义】

Util类:将对象中所有的String类型字段转义

import com.alibaba.druid.util.StringUtils;
import org.apache.commons.lang.StringEscapeUtils;

import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
  * controller层增加、修改时
  * 将对象中所有的String类型字段
  * 自动转义
  * 对象字段中需要有 get及set方法
  *
  * @param object
  * @throws Exception
  */
public class ObjStringUtils {
    
    public static void objUnescapeHtml(Object object) throws Exception {
        if(object == null){
            return;
        }
        Class clazz = object.getClass();
        Field[] fields = object.getClass().getDeclaredFields();
        for (Field field : fields) {
            if ("serialVersionUID".equals(field.getName())) {
                continue;
            }
            if(!"java.lang.String".equals(field.getType().getTypeName())){
                continue;
            }
            PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
            Method getMethod = pd.getReadMethod();
            if(getMethod != null){
                Object objValue = getMethod.invoke(object);
                if(objValue == null || StringUtils.isEmpty(objValue.toString())){
                    continue;
                }

                String newValue = StringEscapeUtils.unescapeHtml(objValue.toString().replace("& ","&"));
                Method setMethod = pd.getWriteMethod();
                if(setMethod != null){
                    setMethod.invoke(object, newValue);
                }

            }

        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值