Grails:如何使用条件绑定域类

Grails:如何使用条件绑定域类,grails,grails-domain-class,Grails,Grails Domain Class,我在Grails中有两个域类,它们将与state和country的相应表单字段交互。是否有任何方法可以有条件地绑定它们,这样用户就不会犯试图提交错误的错误。例如,“伊利诺伊州芝加哥”将是有效的,但“墨西哥芝加哥”将是无效的。在普惠制或控制器内这样做会更容易吗?谢谢你的帮助-这是我以前从未尝试过的 class State { String name String value int orderNumber = 0 static constraints = {

我在Grails中有两个域类,它们将与state和country的相应表单字段交互。是否有任何方法可以有条件地绑定它们,这样用户就不会犯试图提交错误的错误。例如,“伊利诺伊州芝加哥”将是有效的,但“墨西哥芝加哥”将是无效的。在普惠制或控制器内这样做会更容易吗?谢谢你的帮助-这是我以前从未尝试过的

class State {

    String name
    String value
    int orderNumber = 0

    static constraints = {
        name nullable:false, maxSize:50, blank:false
        value nullable:false, maxSize:100, blank:false
    }

    String toString(){
        "$name - $value"
    }

    static mapping = {
        table 'state'
        cache: 'read-write'
        columns{
            id column:'id'
            name column:'name'   //abbreviation
            value column:'value' //state name
            orderNumber column:'order_number'  // numerical list order
        }
        id generator: 'assigned'
    }
}

class Country {

    String name
    String value
    int orderNumber = 0

    static constraints = {
        name nullable:false, maxSize:50, blank:false
        value nullable:false, maxSize:100, blank:false
    }

    String toString(){
        "$name - $value"
    }

    static mapping = {
        table 'country'
        cache: 'read-write'
        columns{
            id column:'id'
            name column:'name'  //abbreviation
            value column:'value' // country name
            orderNumber column:'order_number'  // numerical list order
        }
        id generator: 'assigned'
    }
}
表单字段

<div class="col-sm-1">
    State<g:select name="State" from="" value="" class="form-control" type="text" label="state" required="true"/>
</div>

<div class="col-sm-2">
    Country<g:select name="Country" from="" class="form-control"  type="text" label="country" required="true"/>
</div>

陈述
国家

您需要将表单输入使用到,并使用验证逻辑对该命令对象进行验证。文档中有很多很好的细节


祝你好运

看看AjaxDependencySelection插件,它试图回答这类问题,我认为还有一些类似的问题