0

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;
    }
}

運が悪かったので、明示的に設定し、Stateドメインクラスに入れてみ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
}
4

1 に答える 1

1

「新しいPerson」ページの状態ドロップダウンのデフォルト値を設定しようとしている場合は、Personの「state」メンバーのデフォルト値をBootstrapで作成した「Pennsylvania」状態にすることをお勧めします。

実際、これを行うためのより良い方法は、実際にPersonControllerを生成してから、「create」クロージャーを変更してPerson.stateの初期値を設定することだと思います。

于 2012-11-13T02:23:34.917 に答える