grails 4 - аннотация BindingFormat не привязывается к дате при использовании кода для локализованного связывания - PullRequest
0 голосов
/ 06 марта 2020

Согласно документам , мы можем использовать локализованную привязку данных. Но это не работает в 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>

messages.properties

date.field.format=dd/MM/yyyy

Тот же код отлично работает в Grails 3.xx

Я что-то упустил в конфигурации или что-то не так в коде?

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Мне не хватает какой-то конфигурации или что-то не так в коде?

Похоже, обработка аннотации может быть нарушена. Если вы подадите вопрос по адресу https://github.com/grails/grails-core/issues, мы сможем его исправить.

Спасибо за отзыв.

0 голосов
/ 11 марта 2020

Обходной путь -

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

и реализует CO с grails.validation.Validateable trait.

...