Grails:使用Ajax创建列表面临困难

时间:2014-10-28 06:29:05

标签: grails groovy

我是Grails的新手。有四个基本的域类说A,B,Q,T,另一个是事务类Tr。只有一个名为Trcontroller的控制器。类和控制器如下:

    class A {
        String aName
        String aId

        static constraints = {
            aName(nullable:false, blank:false)
        }
        static belongsTo =[tr:Tr]

        public String toString() { userName }
        String getname() { userName() }

        }

    class B{
     String b
        static constraints = {
        }
        static belongsTo =[q:Q]
    }

    class Q{
        String q
        String qtype
        static constraints = {
        }
        static belongsTo =[b:B]
    }

    class T {
      String t

         static constraints = {
        }
         static hasMany = [q:Q]
    }

    class Tr {
        A a
        B b
        Q q
        Q qtype
        T t
        static constraints = {
        }

    }
class TrController {

    def index() { }
    def dropdown(){}
    def userlist=User.get(params.id)


}

现在我想在dd.gsp页面中从A类创建简单的下拉列表。代码如下:

 <g:select name="User_name" from="${UserInstance.toString() }" value="${UserInstance?.toString()} }"/>

在更改下拉值时,结果将显示在同一页面中的所有域类中。

尝试创建下拉列表(在dd.gsp页面上),但它显示错误:

Class:   groovy.lang.MissingMethodException
Message :   No signature of method: practice00008.TrController.getParams() is applicable for argument types: () values: [] 

请指导我如何解决这些问题。

1 个答案:

答案 0 :(得分:1)

当Grails创建此类时,在静态上下文中调用

def userlist=User.get(params.id)。不是请求。

您必须为您创建一个操作dd.gsp(我猜是/dd?或者您当前的dropdown操作可能会执行此操作?然后将以下代码放入此操作中),然后加载这里的数据如下:

def dd() {
  def userlist = User.get(params.id)
  render view: 'dd', model: [userlist: userlist] 
}

或简单地说:

def dd() {
  [userlist: User.get(params.id)] 
}