首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将json字符串从后台bean发送到外部javascript文件?

问如何将json字符串从后台bean发送到外部javascript文件?
EN

Stack Overflow用户
提问于 2013-11-16 00:30:21
回答 2查看 687关注 0票数 0

我有用于绘制google图表的外部javascript文件,在这个js文件中,我希望访问bean来获取json字符串。

js文件:

代码语言:javascript
复制
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);
    //
    //
}

如果没有可行的解决方案/解决方案,请提供其他解决方案的建议。

EN

回答 2

Stack Overflow用户

发布于 2013-11-16 01:43:00

到目前为止,我找到的最佳解决方案是将json字符串存储在隐藏的输入中,然后在js文件中获取这个隐藏输入的值。

票数 0
EN

Stack Overflow用户

发布于 2013-11-16 07:33:30

如果#{myBean.jsonStr}的结果很大,我建议您将其由浏览器缓存如下:

使用一个分隔的js文件来保存这个json:

myjson.js

代码语言:javascript
复制
var jsonStrGobal=JSON_PLACEHOLDER;

在html头中。

代码语言:javascript
复制
<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,这样浏览器就会得到通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20013065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档