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(对象)