【问题标题】:Grails set default value of scaffolded dropdown boxGrails设置脚手架下拉框的默认值
【发布时间】:2012-11-14 09:36:03
【问题描述】:

是否可以在 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
}

【问题讨论】:

    标签: grails


    【解决方案1】:

    如果您尝试为“new Person”页面设置状态下拉列表的默认值,那么您可能希望将 Person 的“state”成员的默认值设置为您创建的“Pennsylvania”状态在引导程序中。

    实际上,我认为更好的方法是实际生成PersonController,然后修改'create'闭包来设置Person.state的初始值

    【讨论】:

    • 谢谢。我想试试这个,但由于某种原因,我在生成控制器后(在进行任何代码更改之前)在我的应用程序中收到以下错误:“message /myapp/WEB-INF/grails-app/views/person/ list.jsp,描述请求的资源不可用。”我多次尝试清理项目,但没有成功。
    • 一旦你生成了控制器,你也需要匹配的jsps。您也可以生成它们(使用“grails generate-views”),或者自己编写它们。
    • 很高兴知道,谢谢。那解决了它。至于设置默认值,你能看看我上面更新的代码吗?不幸的是,我是 Grails 新手,我仍在努力学习。上面的代码不会改变默认值。谢谢!
    • 不确定这是否会修复它,但在控制器中,您应该使用您在引导程序中创建的状态,而不是为 personInstance 分配新状态。例如personInstance.state = State.findByCode('PA')
    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 2013-10-23
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多