谁能推荐一个框架,用于在独立应用程序中按照 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 程序中向它传递一个对象数组
new Object[] { customer.getFirstName(), order.getEstimatedDispatchDate() };
然而,在这种用法中,代码和模式是紧密相连的。虽然我可以将模式放入资源属性文件中,但代码和模式需要了解彼此的详细信息。使用类似 EL 的系统,代码和模式之间的契约将处于更高的级别(例如,客户和订单,而不是 customer.firstName 和 order.estimatedDispatchDate),从而更容易更改结构、订单和内容的消息,无需更改任何代码。