
java类字符串变量如果含有以下2种字符: &和 <,必须转义否则转化将失败。
其中:
&替换成 &
<替换成 <
因为一些怪字符数据库存储时已转义了,从数据读取必须先转义,然后再进行替换。
下面是五个在XML文件中预定义好的实体:
< < 小于号
> > 大于号
& & 和
' ’单引号
" " 双引号
注意: 只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是个好习惯。
转义函数: 对变量进行转义。
public String formatString(Object obj){
String str="";
if(obj!=null){str= obj.toString();}; if(!StringUtils.isBlank(str)){
String escaped = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(str);
if(escaped.indexOf("&")>=0){
escaped = escaped.replace("&", "&");
}
else if(escaped.indexOf("<")>=0){
escaped = escaped.replace("<", "<");
}
return escaped;
}else{ return " ";
} }
用法:
i = 1;
for (MonographVo vo : monographVos) { String monographname = formatString(vo.getMonographname());
dataMap.put("b8a" + i,monographname);
String publisher = formatString(vo.getPublisher());
dataMap.put("b8b" + i,publisher);
String yearandpage=formatString(vo.getYearandpage());
dataMap.put("b8c" + i,yearandpage);
String allauthor=formatString(vo.getAllauthor());
dataMap.put("b8d" + i,allauthor); ++i;
}