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

Jakarta Commons Jexl 起步

贺高杰
2023-12-01
Jakarta Commons Jexl是一种表达式语言(Java Expression Language)解释器, 它深受JSP2.0中表达式语言(EL)特征的影响,Commons Jexl是对JSP表达式语言的一种扩充,并且不依赖于Servlet API。这就意味着它可以被集成到任何需要表达式语言的应用程序中。
 
jaxl依赖logging包,因此运行jexl最小包集合为:
commons-jexl-1.1.jar
commons-logging.jar
 
下面是一个应用实例:
import org.apache.commons.jexl.Expression; 
import org.apache.commons.jexl.JexlHelper; 
import org.apache.commons.jexl.JexlContext; 
import org.apache.commons.jexl.ExpressionFactory; 

/** 
* Created by IntelliJ IDEA.<p> 
* User: leizhimin<p> 
* Date: 2008-8-16 19:14:39<p> 
* Apache Commons JEXL 测试 
*/
 
public  class TestJexl { 
     public  static  void main(String[] args)  throws Exception { 
        testBasic(); 
    } 

     public  static  void testBasic()  throws Exception { 
        Person person =  new Person( "zhangsan""men", 22); 

        JexlContext jexlContext = JexlHelper.createContext(); 
        jexlContext.getVars().put( "country", person.country); 
        jexlContext.getVars().put( "person", person); 

         /* 创建一个表达式country */ 
        Expression expression1 = ExpressionFactory.createExpression( "country"); 
         /* 结合上下文对表达式求值 */ 
        Object message1 = expression1.evaluate(jexlContext); 
        System.out.println( "对表达式 country 求值结果: " + message1); 

        Expression expression2 = ExpressionFactory.createExpression( "person.getName()"); 
        Object message2 = expression2.evaluate(jexlContext); 
        System.out.println( "对表达式 person.getName() 求值结果: " + message2); 

        Expression expression3 = ExpressionFactory.createExpression( "person.getName().length()"); 
        Object message3 = expression3.evaluate(jexlContext); 
        System.out.println( "对表达式 person.getName().length() 求值结果: " + message3); 

        Expression expression4 = ExpressionFactory.createExpression( "person.getAge()"); 
        Object message4 = expression4.evaluate(jexlContext); 
        System.out.println( "对表达式 person.getAge() 求值结果: " + message4); 

    } 
}
 
运行结果:
对表达式 country 求值结果: CHINA 
对表达式 person.getName() 求值结果: zhangsan 
对表达式 person.getName().length() 求值结果: 8 
对表达式 person.getAge() 求值结果: 22 

Process finished with exit code 0
 
jexl包是很多模板工具的核心依赖包。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/93136,如需转载请自行联系原作者
 类似资料: