2012-11-13 72 views
0

是否可以爲Grails中的生成(腳手架)狀態下拉框設置默認值?我希望這是我可以在域類或控制器類中做:Grails設置腳手架下拉框的默認值

class State { 

    String name 
    String code 

    static mapping = { sort name: "asc" } 

    String toString() { 
     return this.name; 
    } 
} 

class Person implements Comparable { 

    String firstName 
    String lastName 
    State state 

    String toString() { 
     return this.lastName + ", " + this.firstName; 
    } 
} 

我試圖明確,沒有運氣的國家域類設置String name="Pennsylvania"String code="PA"。我在BootStrap.groovy中的自舉狀態數據:

def init = { servletContext -> 
    if (!State.count()) { 
     new State(name: "Alabama", code:"AL").save(failOnError: true) 
     new State(name: "Alaska", code:"AK").save(failOnError: true) 
     new State(name: "Arizona", code:"AZ").save(failOnError: true) 
     new State(name: "Arkansas", code:"AR").save(failOnError: true) 
     .... 
    } 
} 

更新時間:

PersonController.groovy:

def create() { 
    // [personInstance = new Person(params)] 
    def personInstance = new Person(params) 
    personInstance.state = new State("Pennsylvania", "PA") 
    [personInstance: personInstance] 
} 

State.groovy:

public State(String name, String code) { 
    this.name = name 
    this.code = code 
} 

回答

1

如果你正試圖設置默認值在「新人」頁面的狀態下拉列表中,那麼您可能希望將Person的'state'成員的默認值設置爲您在Bootstrap中創建的'Pennsylvania'狀態。

其實,我認爲一個更好的方式做這將是實際生成PersonController,然後修改「創建」關閉設置Person.state

+0

感謝的初始值。我正在嘗試這樣做,但出於某種原因,在生成控制器(在進行任何代碼更改之前)後,我在應用程序中收到以下錯誤:「message/myapp/WEB-INF/grails-app/views/person/list.jsp,description請求的資源不可用。「我嘗試多次清理該項目,但沒有運氣。 – littleK

+0

一旦你生成控制器,你也需要匹配的jsps。你也可以生成它們(用'grails generate-views'),或者自己寫。 – GreyBeardedGeek

+0

很高興知道,謝謝。這解決了它。至於設置默認值,你可以看看我上面更新的代碼嗎?我不幸是Grails的新手,我仍然在努力學習。上面的代碼不會更改默認值。謝謝! – littleK