在视图中呈现JSON数据 - 播放框架

时间:2012-09-22 16:27:41

标签: jquery model-view-controller playframework playframework-1.x

我是新手。我使用renderJSON来生成JSON数据。如何在我的视图中访问此数据。我试过渲染(“view”,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调用是否正在调用各自的控制器操作。谢谢你的帮助

2 个答案:

答案 0 :(得分: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) {
             .......
            });

答案 1 :(得分:0)

您是否尝试在视图中使用#{jsAction /}标记documented herehere。标签设计为以透明地从控制器获取方法定义。该文档显示了很多使用示例,因此我想这可以帮助您解决问题。