当前位置: 首页 > 工具软件 > JUEL > 使用案例 >

juel java,Java EL系列-2.JUEL快速入门

姜宏放
2023-12-01

快速入门

JUEL 发行版包含下面一些jar文件:(来源:http://blog.csdn.net/inkfish)

1.juel-api-2.2.x.jar ——包含javax.el 包下的一些类

2.juel-impl-2.2.x.jar ——包含de.odysseus.el 实现类

3.juel-spi-2.2.x.jar ——包含META-INF/service/javax.el.ExpressionFactory 服务提供资源的定义(如果你的classpath里有多个EL的实现,而你又希望使用JUEL的实现,那么需要调用ExpressionFactory.newInstance() )

4.juel-2.2.x.jar ——包含java.el 包下的类,并且包含de.odysseus.el 下的实现类,而且还有服务提供接口(spi)

也就是说:juel-2.2.x.jar = juel-api-2.2.x.jar + juel-impl-2.2.x.jar + juel-spi-2.2.x.jar 。(来源:http://blog.csdn.net/inkfish)

下面是所有你在你的应用中使用EL所需要的(假设你已经把juel-2.2.x.jar 放到classpath下,并且导入了javax.el.* ):(来源:http://blog.csdn.net/inkfish)

1.工厂和上下文(来源:http://blog.csdn.net/inkfish)

//ExpressionFactory类的实现是de.odysseus.el.ExpressionFactoryImpl

ExpressionFactory factory = new de.odysseus.el.ExpressionFactoryImpl();

//de.odysseus.el.util provides包提供即时可用的子类ELContext

de.odysseus.el.util.SimpleContext context = new de.odysseus.el.util.SimpleContext();

2. 函数和变量(来源:http://blog.csdn.net/inkfish)

//设置map函数math:max(int, int)使用java.lang.Math.max(int, int)

context.setFunction("math", "max", Math.class.getMethod("max", int.class, int.class));

//map变量foo设置为0

context.setVariable("foo", factory.createValueExpression(0, int.class));

3. 解析和求值(来源:http://blog.csdn.net/inkfish)

//解析表达式

ValueExpression e = factory.createValueExpression(context, "${math:max(foo,bar)}", int.class);

//设置顶级的属性"bar"值为1

factory.createValueExpression(context, "${bar}", int.class).setValue(context, 1);

 类似资料: