我是新手。我使用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调用是否正在调用各自的控制器操作。谢谢你的帮助
答案 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 here和here。标签设计为以透明地从控制器获取方法定义。该文档显示了很多使用示例,因此我想这可以帮助您解决问题。