通过这样的自定义标签:
else if (dataList != null && dataList.size() > 0) {// 设置图表的xml数据
String strXML = "<chart caption='"+title+"' numberPrefix='' unescapeLinks='0' formatNumberScale='0' xAxisName='项目' yAxisName='数量' bgcolor='#F3F3F3'>";
for (int i = 0; i < dataList.size(); i++) {
ChartBean vo = (ChartBean) dataList.get(i);
strXML = strXML + "<set name='" + vo.getName() + "' value='"
+ vo.getValue() + "' link=‘" + vo.getUrl() + "’/>";
}
System.out.println(strXML);
stringBuilder.append(" chart_" + id + ".setDataXML(\"" + strXML
+ " </chart>" + "\"); \n");
} else {
if (content != null && content.trim().length() > 4) {
stringBuilder
.append(" var conts=document.getElementById(\"SCDN_FESDFK_EKD_"
+ id + "_" + uidn + "\").innerHTML;\n");
stringBuilder.append(" chart_" + id
+ ".setDataXML(conts); \n");
}
}
"' link=‘" + vo.getUrl() + "’/>";有问题,因为link代表一个js方法,js要传参数的话用单引号就会出错,所以想把
link的单引号换成双引号。但是这一段html生成后又要被一个js方法当作参数传进去(直接传字符串形式,类似:add
(“<input id=''.....”))。这样的话有js语法错误。此时就要用转义字符,正确的代码如下:
"' link=\\\"" + vo.getUrl() + "\\\"/>";