Кто-нибудь может порекомендовать каркас для шаблонирования / форматирования сообщений в автономном приложении по аналогии с JSP EL (Expression Language)?
Я ожидаю, что смогу создать экземпляр какого-либо объекта, дать ему шаблон в соответствии с
Dear ${customer.firstName}. You order will be dispatched on ${order.estimatedDispatchDate}
предоставляет ему контекст, который будет включать в себя словарь значений объектов параметров (в данном случае, например, объект типа Customer с именем 'customer' и объект типа Order с именем 'order').
Я знаю, что существует множество шаблонных фреймворков, многие из которых работают вне контекста веб-приложения, но я не рассматриваю это как большую тяжеловесную шаблонную фреймворк. Просто лучшая версия базовой функциональности формата сообщений, которую Java уже предоставляет
Например, я могу выполнить вышеизложенное с помощью java.text.MessageFormat, используя шаблон (или «шаблон», как они его называют), например
Dear {0}. You order will be dispatched on {1,date,EEE dd MMM yyyy}
и я могу передать ему массив объектов в моей вызывающей Java-программе
new Object[] { customer.getFirstName(), order.getEstimatedDispatchDate() };
Однако при этом использовании код и шаблон тесно связаны между собой. Хотя я мог бы поместить шаблон в файл свойств ресурса, код и шаблон должны знать интимные подробности друг о друге. В EL-подобной системе контракт между кодом и шаблоном будет на гораздо более высоком уровне (например, customer и order, а не customer.firstName и order.estimatedDispatchDate), что облегчит изменение структуры, порядка и содержимого. сообщения без изменения кода.