grails i18n标签交叉引用?

grails i18n标签交叉引用?,grails,syntax,internationalization,label,Grails,Syntax,Internationalization,Label,是否可以在grails中的其他国际化消息中包含i18n属性值 我有一个包含两个属性的域类,“minDelay”和“maxDelay”,我想编写一条国际化消息,引用这两个属性的标签 我编写了一个自定义验证器(maxDelay必须大于或等于minDelay): 如何使用stub.minDelay.label属性的值而不是静态文本? 错误消息应如下所示: "Property [Max. delay (ms)] must be bigger than value of [Min. delay (ms)]

是否可以在grails中的其他国际化消息中包含i18n属性值

我有一个包含两个属性的域类,“minDelay”和“maxDelay”,我想编写一条国际化消息,引用这两个属性的标签

我编写了一个自定义验证器(maxDelay必须大于或等于minDelay):

如何使用
stub.minDelay.label
属性的值而不是静态文本? 错误消息应如下所示:

"Property [Max. delay (ms)] must be bigger than value of [Min. delay (ms)]"
我尝试过像
{stub.minDelay.label}
${stub.minDelay.label}
那样引用它,但我得到的只是来自grails的一个解析错误

也许我处理这个问题的方式不对,是否可以通过验证器中的数字参数注入标签?例如,如果错误消息为:

stub.maxDelay.custom.error=Property [{0}] must be bigger than value of [{1}]

请注意,还有第三个参数class
org.springframework.validation.Errors
,可用于微调错误消息,如:

maxDelay(validator:{ value, reference, errors ->
    if (value < reference.minDelay) {
        errors.rejectValue('maxDelay', 'stub.maxDelay.custom.error', [value, obj.minDelay], 'oops')
    }
  })

运气不好,我尝试了你的建议,它将呈现对象属性的值,而不是标签名称。例如,
Property[10]必须大于[5000]的值。
oh,您只需要它是
Property[Max.delay(ms)]必须大于[Min.delay(ms)的值即可“
,是否没有值?那你为什么不照原样写呢?我正试着把minDelay属性标签和其他引用它的消息分开。在i18n消息必须包含其他消息的其他情况下,也需要它。
stub.maxDelay.custom.error=Property [{0}] must be bigger than value of [{1}]
maxDelay(validator:{ value, reference, errors ->
    if (value < reference.minDelay) {
        errors.rejectValue('maxDelay', 'stub.maxDelay.custom.error', [value, obj.minDelay], 'oops')
    }
  })
stub.maxDelay.custom.error=Property [{0}] must be bigger than value of [{1}]