2

我是新手。我正在使用 renderJSON 来生成 JSON 数据。如何在我的视图中访问这些数据。我试过渲染(“视图”,jsonobject)。当我试图在 jquery 脚本中访问这个对象时,这里没有收到任何数据。

我尝试了一个ajax调用。以下方法在我的控制器中

public static void getJSONWords(){
 .......
 render(jsonObject);
}

public static void wordcloud(){
    render();
}

我的观点“wordcloud.html”制作了一个ajax

       $.ajax({

    url: "/getJSONWords",
    dataType : 'json',
    success: function (data) {
             .......
            });

但我没有为我们的 ajax 调用获得任何数据。我尝试使用 Firfox 调试器,检查日志文件 ajax 调用是否正在调用相应的控制器操作。感谢您的帮助

4

2 回答 2

2

renderJSON将 JSON 直接返回给浏览器,不会被 View 处理。

如果你想在你的视图中访问 jsonObject,那么你可以这样做

render(jsonObject);

这会将 json 对象传递给您的视图,并将其作为jsonObject. 因此,在您的视图中,您可以执行类似的操作。

<script>
   var data = ${jsonObject.raw()};
   $(document).ready(function() {
      // process your JSON once the rest of the document is rendered
   });
</script>

请注意,我raw()用来防止特殊字符被转义。

UDPATE:在您更新后提供更多信息……您的 AJAX 调用中的路由似乎不正确。它应该看起来像...

   $.ajax({

    url: "@{Application.getJSONWords}",
    dataType : 'json',
    success: function (data) {
             .......
            });
于 2012-09-23T05:21:10.547 回答
0

您是否尝试过在此处此处#{jsAction /}记录的视图中使用标签。该标记旨在透明地从控制器获取方法定义。该文档显示了许多有关其用法的示例,因此我想这将有助于您处理问题。

于 2012-09-23T09:40:28.687 回答