groovy.lang.MissingMethodException

时间:2011-09-30 22:44:07

标签: javascript jquery ajax grails

您好我正在尝试使用附加参数的JQUery来调用网址。参数的值来自页面对话框中的文本字段。当我调用url时参数中没有填充值(即url里面的if),它执行正常,但是当我在对话框中输入值并运行它时,给我groovy.lang.MissingMethodException。
我在两种情况下都会提醒网址,并且值会正确显示 我也在控制器def runUserReport中相应地处理3个参数 这是代码片段

 function runJasperReport() {  
var myurl="";  
var from_date=$('#from_date').val();  
var to_date=$('#to_date').val();  
var user_id=$('#user_id').val();  
if(!from_date ||!to_date ||!user_id)  
                                   {  
                        myurl='/gra/reports/runUserReport?fromdate=&todate=&userid=';  
                    }  
                    else{  
                        myurl='/gra/reports/runUserReport?fromdate='+from_date+'&todate='+to_date+'&userid='+user_id+'';  
                           }  
   alert(myurl);  
jQuery.ajax({  
      url: myurl,  
      dataType: 'html',  
      timeout: 3000,  
      beforeSend: function() {  
          jQuery('#demo').html('<center><div style="width: 70px; height: 100px; display: inline-block;margin-top: 120px;"></div></center>')
      },
      success:function(data,textStatus){  
          jQuery('#demo').html(data);  
      },  
      error:function(XMLHttpRequest,textStatus,errorThrown){}  
  });  
  return false;  

收到错误:

groovy.lang.MissingMethodException: No signature of method: gra.ReportsController.$() is applicable for argument types: (gra.ReportsController$_closure8_closure9)   values: [gra.ReportsController$_closure8_closure9@22d90078]  
Possible solutions: is(java.lang.Object), any(), use([Ljava.lang.Object;), any(g
roovy.lang.Closure), getG(), wait()  

1 个答案:

答案 0 :(得分:2)

您对网址的请求

/gra/reports/runUserReport

告诉grails应该有reportsController方法runUserReport。但是,grails说网址正在调用方法$(),即您的请求看起来像

/gra/reports/$()

在您设置网址并触发请求之间会发生一些事情。查看webkit / firebug以及发送的ajax,并验证该url是否符合您的想法。