【问题标题】:In Grails, how do I apply an inList constraint from a 3rd party data source?在 Grails 中,如何应用来自 3rd 方数据源的 inList 约束?
【发布时间】:2013-04-19 02:10:51
【问题描述】:

假设我有以下模型:

class Product {
    String name
    String price
    String currency

    static constraints = {
        currency inList: ['USD', 'EUR']
}

现在我们有一个新要求,即必须从服务中提取 currencyinList 约束:

class CurrencyService {
    def getAvailableCurrencies = {
        ...
    }
}

我该如何进行这项工作?我试过了:

class Product {
    def currencyService
    ...

    static constraints = {
        currency inList: currencyService.getAvailableCurrencies()
    }
}

但我无法访问 static constraints 上下文中的 currencyService 实例。我也尝试过使用static currencyService,但这同样不起作用。有什么想法吗?

【问题讨论】:

标签: grails


【解决方案1】:

正如上面提到的 dmahapatro,您可以使用 custom validator 来使用您的服务:

static constraints = {
    currency validator: { value, obj ->
        if (!(value in obj.currencyService.getAvailableCurrencies())) 
            return ['invalid.currency']
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多