SqEl基础表达式1
来源:互联网 发布:千牛mac版 编辑:程序博客网 时间:2024/06/05 13:45
直接看代码
1 基本类型解析
public class LiteralExprSample { /** * 对基本类型解析 * @param args */ public static void main(String[] args){ ExpressionParser parser=new SpelExpressionParser(); //解析字符串 //"'Hello world'" 或"\"Hello World\"" String helloWorld=(String)parser.parseExpression("\"Hello World\"").getValue(); String helloWorld1=(String)parser.parseExpression("'Hello World'").getValue(); //解析双精度浮点型 double doubleNumber=(Double)parser.parseExpression("6.0221415E+23").getValue(); //解析整型 int maxValue=(Integer)parser.parseExpression("0x7FFFFFFF").getValue(); //解析布尔型 boolean trueValue=(Boolean)parser.parseExpression("true").getValue(); //解析空值 Object nullValue=parser.parseExpression("null").getValue(); System.out.println(helloWorld); System.out.println(helloWorld1); System.out.println(doubleNumber); System.out.println(maxValue); System.out.println(trueValue); System.out.println(nullValue); }}Hello World
Hello World
6.0221415E23
2147483647
true
null
2对象属性解析
public class PropertyExprSample { /** * * 在Sqel中,可使用类似xxx.yyy.zzz的对象属性路径轻松地访问对象属性值。 * @param args */ public static void main(String[] args){ User user=new User(); user.setUserName("tom"); user.setLastVisit(new Date()); user.setCredits(100); user.setPlaceOfBirth(new PlaceOfBirth("中国","厦门")); //构造Spel解析上下文 ExpressionParser parser=new SpelExpressionParser(); EvaluationContext context=new StandardEvaluationContext(user); //基本属性值获取 String username=(String)parser.parseExpression("userName").getValue(context); int credits=(Integer)parser.parseExpression("credits+10").getValue(context); String city=(String)parser.parseExpression("placeOfBirth.city").getValue(context); System.out.println(username); System.out.println(credits); System.out.println(city); }}tom
110
厦门
3数组、集合类型解析
public class CollectionExprSample { /** * 在Sqel中支持数组、集合类型(map,list)的解析,数组支持标准创建数组的方式,如“new int[]{1,2,3}".不支持多元数组 * list支持大括号括起来的内容,如"{1,2,3,4}" "{{'a','b'},{'x','y'}}". * map采用如下方式:{userName:'tom',credits:100} * @param args */ public static void main(String[] args){ User user=new User(); user.setUserName("tom"); user.setLastVisit(new Date()); user.setCredits(100); user.setPlaceOfBirth(new PlaceOfBirth("中国","厦门")); ExpressionParser parser=new SpelExpressionParser(); EvaluationContext context=new StandardEvaluationContext(user); //数组表达式解析 int[] array1=(int[])parser.parseExpression("new int[]{1,2,3}").getValue(context); int[][] array2=(int[][])parser.parseExpression("new int[2][3]").getValue(context); System.out.println(array1.length); System.out.println(array2.length); //目前不支持多维数组初始化,一下语句将报错 //int[][] array3=(int[][])parser.parseExpression("new int[2][3]{{1,2,3},{4,5,6}}").getValue(context); //System.out.println(array3); //list表达式解析 List list=(List)parser.parseExpression("{1,2,3,4}").getValue(context); List listOfLists=(List)parser.parseExpression("{{'a','b'},{'x','y'}}").getValue(context); System.out.println(list); System.out.println(listOfLists); //列表字符串解析 Map userInfo=(Map)parser.parseExpression("{userName:'tom',credits:100}").getValue(context); List userInfo2=(List)parser.parseExpression("{{userName:'tom',credits:100},{userName:'tom',credits:100}}").getValue(context); System.out.println(userInfo); System.out.println(userInfo2); //从数组,list,map中取值 String interest1=(String)parser.parseExpression("interestsArray[0]").getValue(context); String interest2=(String)parser.parseExpression("interestsList[0]").getValue(context); String interest3=(String)parser.parseExpression("interestsMap['interest1']").getValue(context); System.out.println(interest1); System.out.println(interest2); System.out.println(interest3); }}3
2
[1, 2, 3, 4]
[[a, b], [x, y]]
{userName=tom, credits=100}
[{userName=tom, credits=100}, {userName=tom, credits=100}]
Hello
Hello
Hello
阅读全文
0 0
- SqEl基础表达式1
- SqEl基础2
- 正则表达式基础1
- 正则表达式基础(1)
- 正则表达式基础1
- 正则表达式基础(1)
- 正则表达式之基础1
- 正则表达式基础笔记1
- scala基础1-基本表达式
- 正则表达式基础表达式
- 正则表达式基础篇(1)
- 基础( 1 ):C++基本数据类型和表达式
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 正则表达式基础
- 阿里云服务器开发微信公众号,配置的时候总是TOKEN验证失败
- MySQL存储过程详解 mysql 存储过程
- 和为k的连续区间(mp+前缀和) 51nod1094
- PAT (Advanced Level) Practise 1107 Social Clusters (30)
- 【作业】算法概论课后证明题8.14
- SqEl基础表达式1
- linux的一些基础操作
- PAT (Advanced Level) Practise 1106 Lowest Price in Supply Chain(25)
- VS2010 C# 如何连接Oracle 11g数据库
- Spring Boot实战之Spring项目的搭建
- 实习报告
- RecyclerView 显示底部,滚动底部(无动画)
- Mysql存储过程和函数区别介绍
- 大数据认知阶段——如何学习大数据相关技术