我有用于绘制google图表的外部javascript文件,在这个js文件中,我希望访问bean来获取json字符串。
js文件:
window.onload = function(){
if(typeof(google)!= undefined){
google.load('visualization', '1.0', {'packages':['corechart'],callback: drawChart});
}
};
function drawChart() {
var jsonStr=#{myBean.jsonStr} // i want to be able to do something like that
var data_recSent = new google.visualization.DataTable(jsonStr);
//
//
}如果没有可行的解决方案/解决方案,请提供其他解决方案的建议。
发布于 2013-11-16 01:43:00
到目前为止,我找到的最佳解决方案是将json字符串存储在隐藏的输入中,然后在js文件中获取这个隐藏输入的值。
发布于 2013-11-16 07:33:30
如果#{myBean.jsonStr}的结果很大,我建议您将其由浏览器缓存如下:
使用一个分隔的js文件来保存这个json:
myjson.js
var jsonStrGobal=JSON_PLACEHOLDER;在html头中。
<script language="javascript" type="text/javascript" src="myjson.js?version=#{myBean.jsonVersion}" />myjson.js不是物理存储的,而是由servlet或后台bean加载的,JSON_PLACEHOLDER由json替换,这个支持bean的servlet将在http响应头上设置Cache-control,以使浏览器缓存它。Servlet可以在web.xml中注册,backing可以在pages.xml中声明为页面操作。
只要json的内容发生变化,就增加myBean.jsonVersion,这样浏览器就会得到通知。
https://stackoverflow.com/questions/20013065
复制相似问题