0

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

对于我通过 javascript 通过 gsp 页面进行的每个 AJAX 调用,呈现为 JSON 方法对我来说都很好。但现在它不起作用。我用于通话的代码是:

我的 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

4

1 回答 1

4

试试这个模式:

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

    render(contentType:'text/json'){
       data
    }
}
于 2012-06-17T12:54:09.687 回答