Шаблоны FreeMarker, как правило, не предоставляют API-интерфейсы Java и не позволяют вам получать доступ к классам Java по имени.Я имею в виду, что в некоторых случаях это так, но не в целом, например, newDate
не имеет субвариабельных переменных (например, getAsDate
) во FreeMarker.Существуют утилиты, с помощью которых вы можете предоставлять статические методы классов, например:
TemplateHashModel staticModels
= ((BeansWrapper) configuration.getObjectWrapper())
.getStaticModels();
webContext.put("Date", staticModels.get("java.util.Date"));
webContext.put("Instant", staticModels.get("java.time.Instant"));
, где configuration
- ваш freemarker.template.Configuration
синглтон.На самом деле, вы можете добавить Date
и Instant
к этому синглтону с помощью Configuration.setSharedVariable
, один раз, когда вы настраиваете FreeMarker.
И затем вы можете записать Date.from(Instant.now())
в шаблон, потому что теперь есть Date
и Instant
, и вы специально указали FreeMarker выставить свои статические методы.