在grails从1.3.4升级到2.0.3之后,将数据呈现为JSON无法正常工作

时间:2012-06-17 10:16:42

标签: jquery ajax json grails render

我在项目中使用grails 1.3.4,一切正常,直到我决定将项目迁移到grails 2.0.3。

作为JSON方法的渲染对于我通过gsp页面通过gsp页面进行的每个AJAX调用都很好。但现在它没有用。 我用于呼叫的代码是:

我的GSP页面中的Javascript:

var url = "${createLink(controller:'user',action:'someAction')}";
$.get(url,function(data){
   if (data.results != "") {
     alert(data.results);
   }
});

我的控制器中的代码:

import grails.converters.JSON

....
....

def someAction = {
    def data = [results:"Ajax call working"]
    render data as JSON
}

上面的代码在grails 1.3.4中对我来说非常合适,但现在我收到了以下错误

No signature of method: grails.converters.JSON.render() is applicable 
for argument types: (com.xxxx.yyy.UserController$_closure36) 
values: [com.xxxx.yyy.UserController$_closure36@168d2e7]
Possible solutions: render(java.io.Writer), 
render(javax.servlet.http.HttpServletResponse),
every(), find(), find(groovy.lang.Closure), 
every(groovy.lang.Closure).

我真的被困住了,不知道该怎么做。我有什么遗漏。

我也在使用 Groovy版本:1.8.6和JVM:1.6.0_26

1 个答案:

答案 0 :(得分:4)

请尝试使用此模式:

def someAction = {
    def data = [results:"Ajax call working"]

    render(contentType:'text/json'){
       data
    }
}