2014-10-28 94 views
1

我是Grails中的新成員。有四個基本的域類A,B,Q,T,另一個是事務類Tr。只有一個名爲Trcontroller的控制器。這些類和控制器如下:Grails:使用Ajax創建列表時遇到困難

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

def userlist=User.get(params.id)在靜態上下文中調用,當Grails創建此類時。不適用於請求。

你必須爲你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)] 
} 
+0

您好! @Igor Artamonov先生,我已經創建dd.gsp – Apache 2014-10-28 07:21:38

+0

我正在談論行動。見http://grails.org/doc/latest/guide/theWebLayer.html#understandingControllersAndActions目前你有兩個動作:'dropdown'和'index' – 2014-10-28 07:35:51

+0

你好@Igor Artamonov先生,使用你的代碼下拉出現null值但不顯示數據庫值。 – Apache 2014-10-28 10:21:08

相關問題