我在我的助手类中从我的bean中获取JSONOject。
内部帮手
public JSONObject init() throws Exception{
// initializations codes are here
JSONObject json = JSONObject.fromObject(bean);
return json;
}
然后,在加载jsp时,我需要访问jsp内部的JSONObject,通过ajax请求调用jsp(像下面这样分配javascript变量)。
内部jsp
$(document).ready(function(){
var VAR_JSON = // need to get the JSON through AJAX
});
以前我有这样的密码。
<script type="text/javascript">
var VAR_JSON = <%=helper.init()%>
</script>
我如何通过AJAX实现这一点?
提前谢谢!
发布于 2014-01-16 09:41:27
首先,不要再想JSP了。JSP是在处理请求时在服务器上执行的部分内容。这反过来会返回对浏览器(通常是网页)的响应;您的JavaScript (因此是AJAX请求)在该网页上的用户浏览器中运行,而不是在您的JSP中运行。
jQuery提供了一个专门为通过AJAX请求获取JSON而设计的函数;它称为jQuery.getJSON()
。你会用这样的方式:
<script type="text/javascript">
$(document).ready(function() {
var VAR_JSON;
function yourFunction() {
// do something with VAR_JSON here
}
$.getJSON('yoururl.do', function(response) {
VAR_JSON = response;
yourFunction();
});
});
</script>
需要注意的是,您不能执行var VAR_JSON = $.getJSON()
,因为该函数是异步的,因此不返回JSON (它返回其他内容-参见上面链接的文档)。相反,您需要提供一个回调函数,它将在异步请求返回成功响应时执行,然后该响应将设置您的变量并调用使用它的另一个函数。
还要注意的是,您不需要调用类似于JSON.parse()
的东西,因为jQuery会为您这样做;您已经告诉它,您希望JSON返回,所以它解析该字符串以获得结果对象或数组,然后将其作为参数传递给回调函数。
https://stackoverflow.com/questions/21157957
复制相似问题