Grails 3: как переопределить шаблон модуля плагинов для java.sql.Date - PullRequest
0 голосов
/ 19 февраля 2019

Grails 3.3.8 отображает java.sql.Date неправильно в представлении лесов и любом представлении, используя плагин fields.Например, если birthDate имеет тип java.sql.Date, он отображает это:

Birth Date 2012-03-18 00:00:00 CET

вместо этого:

Birth Date 2012-03-18 00:00:00 CET

Обратите внимание, что весь смысл java.sql.Date таков:не имеет времени или часового пояса, как если бы сервер или локальный часовой пояс изменились, вы никогда не захотите, чтобы эта дата изменилась.

В соответствии с документами здесь , ниже приведены пути для шаблоновисправить это отображение:

grails-app/views/controllerName/    
grails-app/views/_fields/class/propertyName/
grails-app/views/_fields/superclass/propertyName/
grails-app/views/_fields/associationType/
grails-app/views/_fields/propertyType/
grails-app/views/_fields/propertySuperclass/
grails-app/views/_fields/default/

Мне нужно исправить все поля, которые используют java.sql.Date.

Однако, похоже, я не могу.Если я поставлю свой _displyWidget.gsp, используя этот:

grails-app/views/_fields/propertyType/

т.е.

grails-app/views/_fields/date/_displayWdiget.gsp

Он меняет все даты, включая java.util.Date, что неверно.

Я пытался использовать этот путь:

grails-app/views/_fields/java/sql/date/_displayWidget.gsp 

Но это не работает, оно игнорируется, и даты отображаются некорректно, как и раньше, с указанием времени и часового пояса.

Есть ли обходной путь?

Я мог бы создать _displayWdigets для каждого поля в каждом контроллере или классе с этим типом, но их слишком много (даты встречаются очень часто), и это было бы проблемой обслуживания, поскольку разработчики добавляли новые даты в объекты доменаНе знаю также, чтобы создавать displayWidgets для каждого.

...