【问题标题】:get JSON instance to jsp through calling AJAX通过调用AJAX获取JSON实例到jsp
【发布时间】:2014-01-16 09:30:46
【问题描述】:

我从助手类中的 bean 中获得 JSONOject

内部助手

public JSONObject init() throws Exception{
        // initializations codes are here
        JSONObject json = JSONObject.fromObject(bean);
        return json;
}

然后我需要在加载jsp时通过ajax请求访问jsp调用内部的JSONObject(分配如下的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 实现这一点?

提前谢谢..!!

【问题讨论】:

标签: java jquery ajax json


【解决方案1】:

首先,停止思考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,所以它会解析该字符串以获取结果对象或数组,然后将其作为参数传递给回调函数。

【讨论】:

  • 在 struts 1 中如何转发 json 对象而不是 jsp。我是java新手,请帮帮我
  • @user1727557 我个人使用json-taglib,这是一组用于生成 JSON 的 JSP 标签。您需要在 Struts 中为您的操作添加一个新的转发,该转发指向 JSP 以生成 JSON,而不是为您的网页生成标准 JSP。
猜你喜欢
  • 1970-01-01
  • 2016-06-22
  • 2015-07-22
  • 1970-01-01
  • 2018-06-03
  • 1970-01-01
  • 2012-04-10
  • 2013-05-15
  • 1970-01-01
相关资源
最近更新 更多