特殊字符转译

1.引用 org.apache.commons.lang

  <!-- 转义处理 -->
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

2.java 代码

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;

public class ObjStringUtils {
    /***
     * 将对象中所有的String类型字段
     * 自动转义
     * 对象字段中需要有 get及set方法
     *
     * @param object
     * @throws Exception
     */
    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);
                }

            }

        }
    }

}

3.调用

ObjStringUtils.objUnescapeHtml(对象)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值