0

根据文档,我们可以使用本地化数据绑定。但这在 grails 4 中不起作用。

控制器

import grails.databinding.BindingFormat

class TestController {

  def index() {
    render view: 'index'
  }

  def test(DateCommand command) {
    render "${params} <br/><br/> - ${command.errors?.collect { error -> error as String }?.join(', ')}"
  }
}

class DateCommand {

  @BindingFormat(code = 'date.field.format')
  Date aDate
  @BindingFormat('dd/MM/yyyy')
  Date bDate

  static constraints = {
    aDate(nullable: false)
    bDate(nullable: false)
  }
}

索引视图

<g:form action="test">
  <input type="text" name="aDate" value="27/04/2019" />
  <input type="text" name="bDate" value="27/04/2019" />
  <g:submitButton class="btn btn-success" name="OK" />
</g:form>

消息属性

date.field.format=dd/MM/yyyy

相同的代码在 grails 3.xx 中运行良好

我是否缺少某些配置或代码中有问题?

4

2 回答 2

1

我是否缺少某些配置或代码中有问题?

看起来注释处理可能会因此而中断。如果您在https://github.com/grails/grails-core/issues提出问题,我们可以解决它。

感谢您的反馈。

于 2020-03-06T17:26:32.323 回答
0

解决方法——

command.aDate = params.date('aDate', message(code: 'date.field.format'))
command.clearErrors()
command.validate()

并使用 grails.validation.Validateable trait 实现 CO。

于 2020-03-11T09:22:12.157 回答