public class SpEL { public static void main(String[] args) { ExpressionParser parser=new SpelExpressionParser(); EvaluationContext ctx=new StandardEvaluationContext(); List<String> list=new ArrayList<String>(); list.add("java"); //list.add("java3"); list.add("java2"); list.add("java1"); ctx.setVariable("mylist", list); List<Integer> list1 = new ArrayList<Integer>(); list1.addAll(Arrays.asList(2, 3, 4, 5, 6, 7, 9)); ctx.setVariable("list", list1); parser.parseExpression("#mylist[1]='123'").getValue(ctx); System.out.println(parser.parseExpression("#mylist.size()>3?'大于3':'小于或等于3'").getValue(ctx)); //System.out.println(parser.parseExpression("#mylist[1]").getValue(ctx)); // System.out.println(parser.parseExpression("T(java.lang.Math).random()").getValue(ctx)); System.out.println(parser.parseExpression("T(System).getProperty('os.name')").getValue(ctx)); //System.out.println(System.getProperty("os.name")); // 7 //System.out.println(parser.parseExpression("new javax.swing.JFrame('测试').setVisible('true')").getValue()); //8.变量 #root #this +集合选择 System.out.println(parser.parseExpression( "#list.?[#this >5]").getValue(ctx)); //[6,7,9] //9.自定义函数 // System.out.println(parser.parseExpression("new javax.swing.JFrame('测试').setVisible('true')").getValue()); //表达式模板 Person p=new Person ("aa",1,183); Person p1=new Person ("aa11",2,173); System.out.println(parser.parseExpression("我的名字是#{name},年龄是#{age},身高是#{h}",new TemplateParserContext()).getValue(p)); System.out.println(parser.parseExpression("我的名字是#{name},年龄是#{age},身高是#{h}",new TemplateParserContext()).getValue(p1)); } /* 小于或等于3 Windows XP [6, 7, 9] 我的名字是aa,年龄是1,身高是183 我的名字是aa11,年龄是2,身高是173*/ }
person.java
package qust.fang.chao.spEl; public class Person { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getH() { return h; } public void setH(int h) { this.h = h; } int age; int h; public Person(String name, int age, int h) { super(); this.name = name; this.age = age; this.h = h; } }