在节点<chart>中添加属性“unescapeLinks='0'”即可解决Link中JS参数中文乱码问题,但搞半天,解决不了,原来是swf文件版本低啦。更新版本,OK解决啦。
<div id="fusionChartDiv" align="center" valign="center">图表加载中,请稍候... </div> <script type="text/javascript"> var width = "<c:out value="${param.width}" default="800"/>"; var heigth ="<c:out value="${param.heigth}" default="400"/>"; var chart = new FusionCharts("${ctx}/js/fusioncharts/${param.swf}?ChartNoDataText=无数据", "ChartId", width, heigth, "0", "0"); <c:choose> <c:when test="${param.series=='2'}"> var url = '${ctx}/report/getMSDataXML.mvc'; </c:when> <c:otherwise> var url = '${ctx}/report/getSSDataXML.mvc'; </c:otherwise> </c:choose> url = url +"?1=1<%=ParamUtil.getUrlParam(request)%>"; $j.ajax({ type: "POST", url: url, success: function(data){ chart.setDataXML(data); chart.render("fusionChartDiv"); } }); </script>
关于AJAX请求过滤的问题
/**
* JQUERY 的AJAX POST请求,使用UTF-8编码 ,其他情况使用默认编码
* @param request
* @param defaultEncoding
* @return
*/
private String getRequestEncoding(HttpServletRequest request,
String defaultEncoding) {
String encoding = "";
String requestedWith = request.getHeader("X-Requested-With");
String contentType = request.getContentType();
if ("XMLHttpRequest".equalsIgnoreCase(requestedWith)
&& contentType != null
&& contentType.startsWith("application/x-www-form-urlencoded")) {
encoding = AJAX_POST_ENCODING;
} else {
encoding = defaultEncoding;
}
return encoding;
}