java - 在非 JSP ( 独立) 上下文中,java jstl/JSP EL ( 表达式语言)

  显示原文与译文双语对照的内容

任何人都可以推荐一个框架,用于在一个单独的应用程序中沿着 JSP al ( 表达式语言)?

我希望能够实例化某个类型的对象,给它一个模板,沿着


Dear ${customer.firstName}. You order will be dispatched on ${order.estimatedDispatchDate}



为它提供一个上下文,其中包含参数对象的值字典( 在这种情况下,类型为Customer的对象具有'客户',say和一个具有名称的类型的对象'订单') 。

我知道这里有许多模板框架,它的中很多工作在web应用程序上下文中,但是我看不到。 Java已经提供的基本消息格式功能的更好版本

例如,我可以通过使用 java.text.MessageFormat的模板( 或者'Pattern'他们称之为) 来完成上面的操作,例如


Dear {0}. You order will be dispatched on {1,date,EEE dd MMM yyyy}



我可以在调用Java程序中传递一个对象 array


new Object[] { customer.getFirstName(), order.getEstimatedDispatchDate() };



然而,在这种用法中,代码和 Pattern 是紧密相连的。 我可以把 Pattern 放在资源属性文件中,代码和 Pattern 需要知道彼此的亲密细节。 使用el类似的系统,代码与 Pattern 之间的协定将处于更高的水平( 比如 ) 。 客户和订单,而不是 customer.firstName 和订单。estimateddispatchdate更容易更改消息的结构,顺序和内容,而不改变任何代码。

时间:

你可以使用通用表达式语言本身。 你需要一个实现( 但是还有几个选择) 。 然后,你需要实现三个类: ELResolver,FunctionMapper和 VariableMapper 。

这里博客文章描述了如何执行这里操作: Java: 使用J2EE外部的EL 。

StringTemplate 是速度和分类学的一种更轻量级的替代方法。

...