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;
}
}