任何人都可以推荐一个框架来按照 JSP EL(表达式语言)的方式在独立应用程序中对消息进行模板/格式化吗?
我希望能够实例化某种对象,给它一个模板
Dear ${customer.firstName}. You order will be dispatched on ${order.estimatedDispatchDate}
为它提供一个上下文,该上下文将包括一个参数对象的值字典(在这种情况下,一个名为“customer”的 Customer 类型的对象,以及一个名为“order”的 Order 类型的对象)。
我知道那里有许多模板框架——其中许多在 Web 应用程序上下文之外工作,但我不认为这是一个重量级的大型模板框架。只是 Java 已经提供的基本消息格式功能的更好版本
例如,我可以通过 java.text.MessageFormat 使用模板(或他们称之为“模式”)来完成上述操作,例如
Dear {0}. You order will be dispatched on {1,date,EEE dd MMM yyyy}
我可以在我的调用 Java 程序中传递一个 Object 数组
new Object[] { customer.getFirstName(), order.getEstimatedDispatchDate() };
但是,在这种用法中,代码和模式是密切相关的。虽然我可以将模式放在资源属性文件中,但代码和模式需要了解彼此的密切细节。使用类似 EL 的系统,代码和模式之间的契约将处于更高级别(例如,客户和订单,而不是 customer.firstName 和 order.estimatedDispatchDate),从而更容易更改结构、订单和内容的消息而不更改任何代码。