我在项目中使用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
答案 0 :(得分:4)
请尝试使用此模式:
def someAction = {
def data = [results:"Ajax call working"]
render(contentType:'text/json'){
data
}
}