`
joseph_he
  • 浏览: 37416 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

ongl备忘

    博客分类:
  • java
 
阅读更多
Java代码 复制代码
  1. // ***************** root对象的概念 ******************* //   
  2. public void testOgnl_01() throws Exception{   
  3.     User user = new User();   
  4.     user.setUsername("张三");   
  5.        
  6.     //相当于调用user.getUsername()方法   
  7.     String value = (String)Ognl.getValue("username", user);   
  8.     System.out.println(value);   
  9. }   
  10.   
  11. public void testOgnl_02() throws Exception{   
  12.     User user = new User();   
  13.     Person p = new Person();   
  14.     p.setName("张三");   
  15.     user.setPerson(p);   
  16.        
  17.     //相当于调用user.getPerson().getName()方法   
  18.     String value = (String)Ognl.getValue("person.name", user);   
  19.     System.out.println(value);   
  20. }   
  21.   
  22. public void testOgnl_03() throws Exception{   
  23.     User user = new User();   
  24.     Person p = new Person();   
  25.     p.setName("张三");   
  26.     user.setPerson(p);   
  27.        
  28.     //可以使用#root来引用根对象,相当于调用user.getPerson().getName()方法   
  29.     String value = (String)Ognl.getValue("#root.person.name", user);   
  30.     System.out.println(value);   
  31. }   
[java] view plaincopy
 
  1.     // ***************** root对象的概念 ******************* //  
  2. public void testOgnl_01() throws Exception{  
  3. User user = new User();  
  4. user.setUsername("张三");  
  5. //相当于调用user.getUsername()方法  
  6. String value = (String)Ognl.getValue("username", user);  
  7. System.out.println(value);  
  8. }  
  9. public void testOgnl_02() throws Exception{  
  10. User user = new User();  
  11. Person p = new Person();  
  12. p.setName("张三");  
  13. user.setPerson(p);  
  14. //相当于调用user.getPerson().getName()方法  
  15. String value = (String)Ognl.getValue("person.name", user);  
  16. System.out.println(value);  
  17. }  
  18. public void testOgnl_03() throws Exception{  
  19. User user = new User();  
  20. Person p = new Person();  
  21. p.setName("张三");  
  22. user.setPerson(p);  
  23. //可以使用#root来引用根对象,相当于调用user.getPerson().getName()方法  
  24. String value = (String)Ognl.getValue("#root.person.name", user);  
  25. System.out.println(value);  
  26. }  

 

 

 

Java代码 复制代码
  1. // *********************** context的概念 **********************//   
  2.     public void testOgnl_04() throws Exception{   
  3.         Person p1 = new Person();   
  4.         Person p2 = new Person();   
  5.         p1.setName("张三");   
  6.         p2.setName("李四");   
  7.            
  8.         Map context = new HashMap();   
  9.         context.put("p1", p1);   
  10.         context.put("p2", p2);   
  11.            
  12.         String value = (String)Ognl.getValue("#p1.name + ',' + #p2.name", context, new Object());   
  13.         System.out.println(value);   
  14.     }   
  15.        
  16.     public void testOgnl_05() throws Exception{   
  17.         Person p1 = new Person();   
  18.         Person p2 = new Person();   
  19.         p1.setName("张三");   
  20.         p2.setName("李四");   
  21.            
  22.         Map context = new HashMap();   
  23.         context.put("p1", p1);   
  24.         context.put("p2", p2);   
  25.            
  26.         User root = new User();   
  27.         root.setUsername("zhangsan");   
  28.            
  29.         String value = (String)Ognl.getValue("#p1.name + ',' + #p2.name + ',' + username", context, root);   
  30.         System.out.println(value);   
  31.     }  
[java] view plaincopy
 
  1. // *********************** context的概念 **********************//  
  2. public void testOgnl_04() throws Exception{  
  3. Person p1 = new Person();  
  4. Person p2 = new Person();  
  5. p1.setName("张三");  
  6. p2.setName("李四");  
  7. Map context = new HashMap();  
  8. context.put("p1", p1);  
  9. context.put("p2", p2);  
  10. String value = (String)Ognl.getValue("#p1.name + ',' + #p2.name", context, new Object());  
  11. System.out.println(value);  
  12. }  
  13. public void testOgnl_05() throws Exception{  
  14. Person p1 = new Person();  
  15. Person p2 = new Person();  
  16. p1.setName("张三");  
  17. p2.setName("李四");  
  18. Map context = new HashMap();  
  19. context.put("p1", p1);  
  20. context.put("p2", p2);  
  21. User root = new User();  
  22. root.setUsername("zhangsan");  
  23. String value = (String)Ognl.getValue("#p1.name + ',' + #p2.name + ',' + username", context, root);  
  24. System.out.println(value);  
  25. }  

 

 

 

Java代码 复制代码
  1. // ******************* OGNL赋值操作 ************************//   
  2. public void testOgnl_06() throws Exception{   
  3.     User user = new User();   
  4.        
  5.     //给root对象的属性赋值,相当于调用user.setUsername()   
  6.     Ognl.setValue("username", user, "zhangsan");   
  7.        
  8.     System.out.println(user.getUsername());   
  9. }   
  10.   
  11. public void testOgnl_07() throws Exception{   
  12.     User user = new User();   
  13.        
  14.     Map context = new HashMap();   
  15.     context.put("u", user);   
  16.        
  17.     //给context中的对象属性赋值,相当于调用user.setUsername()   
  18.     Ognl.setValue("#u.username",context, new Object(), "zhangsan");   
  19.        
  20.     System.out.println(user.getUsername());   
  21. }   
  22.   
  23. public void testOgnl_08() throws Exception{   
  24.     User user = new User();   
  25.        
  26.     Map context = new HashMap();   
  27.     context.put("u", user);   
  28.        
  29.     //给context中的对象属性赋值,相当于调用user.setUsername()   
  30.     //在表达式中使用=赋值操作符来赋值   
  31.     Ognl.getValue("#u.username = '张三'",context, new Object());   
  32.        
  33.     System.out.println(user.getUsername());   
  34. }   
  35.   
  36. public void testOgnl_09() throws Exception{   
  37.     User user = new User();   
  38.     Person p = new Person();   
  39.        
  40.     Map context = new HashMap();   
  41.     context.put("u", user);   
  42.        
  43.     context.put("p", p);   
  44.        
  45.     //给context中的对象属性赋值,相当于调用user.setUsername()   
  46.     //在表达式中使用=赋值操作符来赋值   
  47.     Ognl.getValue("#u.username = '张三',#p.name = '李四'",context, new Object());   
  48.        
  49.     System.out.println(user.getUsername()+","+p.getName());   
  50. }   
[java] view plaincopy
 
  1.     // ******************* OGNL赋值操作 ************************//  
  2. public void testOgnl_06() throws Exception{  
  3. User user = new User();  
  4. //给root对象的属性赋值,相当于调用user.setUsername()  
  5. Ognl.setValue("username", user, "zhangsan");  
  6. System.out.println(user.getUsername());  
  7. }  
  8. public void testOgnl_07() throws Exception{  
  9. User user = new User();  
  10. Map context = new HashMap();  
  11. context.put("u", user);  
  12. //给context中的对象属性赋值,相当于调用user.setUsername()  
  13. Ognl.setValue("#u.username",context, new Object(), "zhangsan");  
  14. System.out.println(user.getUsername());  
  15. }  
  16. public void testOgnl_08() throws Exception{  
  17. User user = new User();  
  18. Map context = new HashMap();  
  19. context.put("u", user);  
  20. //给context中的对象属性赋值,相当于调用user.setUsername()  
  21. //在表达式中使用=赋值操作符来赋值  
  22. Ognl.getValue("#u.username = '张三'",context, new Object());  
  23. System.out.println(user.getUsername());  
  24. }  
  25. public void testOgnl_09() throws Exception{  
  26. User user = new User();  
  27. Person p = new Person();  
  28. Map context = new HashMap();  
  29. context.put("u", user);  
  30. context.put("p", p);  
  31. //给context中的对象属性赋值,相当于调用user.setUsername()  
  32. //在表达式中使用=赋值操作符来赋值  
  33. Ognl.getValue("#u.username = '张三',#p.name = '李四'",context, new Object());  
  34. System.out.println(user.getUsername()+","+p.getName());  
  35. }  

 

 

 

Java代码 复制代码
  1.   
  2. //****************** 使用OGNL调用对象的方法 **********************//   
  3. public void testOgnl_10() throws Exception{   
  4.     User user = new User();   
  5.     user.setUsername("张三");   
  6.        
  7.     String value = (String)Ognl.getValue("getUsername()", user);   
  8.     System.out.println(value);   
  9. }   
  10.   
  11. public void testOgnl_11() throws Exception{   
  12.     User user = new User();   
  13.        
  14.     Ognl.getValue("setUsername('张三')", user);   
  15.     System.out.println(user.getUsername());   
  16. }   
[java] view plaincopy
 
  1. //****************** 使用OGNL调用对象的方法 **********************//  
  2. public void testOgnl_10() throws Exception{  
  3. User user = new User();  
  4. user.setUsername("张三");  
  5. String value = (String)Ognl.getValue("getUsername()", user);  
  6. System.out.println(value);  
  7. }  
  8. public void testOgnl_11() throws Exception{  
  9. User user = new User();  
  10. Ognl.getValue("setUsername('张三')", user);  
  11. System.out.println(user.getUsername());  
  12. }  

 

 

 

Java代码 复制代码
  1. // ********************* OGNL中的this表达式 **********************//   
  2. public void testOgnl_14() throws Exception{   
  3.     Object root = new Object();   
  4.     Map context = new HashMap();   
  5.        
  6.     List values = new ArrayList();   
  7.     for(int i=0; i<11; i++){   
  8.         values.add(i);   
  9.     }   
  10.     context.put("values", values);   
  11.        
  12.     Ognl.getValue("@System@out.println(#values.size.(#this > 10 ? /"大于10/" : '不大于10'))", context, root);   
  13.        
  14. }   
  15.   
  16. public void testOgnl_15() throws Exception{   
  17.     User user = new User();   
  18.        
  19.     Ognl.getValue("setUsername('ZHANGSAN')", user);   
  20.     Ognl.getValue("@System@out.println(#this.username)", user);   
  21. }   
  22.   
  23. public void testOgnl_16() throws Exception{   
  24.     User user = new User();   
  25.        
  26.     Ognl.getValue("setUsername('ZHANGSAN')", user);   
  27.     Ognl.getValue("@System@out.println(username.(#this.toLowerCase()))", user);   
  28. }  
[java] view plaincopy
 
  1.     // ********************* OGNL中的this表达式 **********************//  
  2. public void testOgnl_14() throws Exception{  
  3. Object root = new Object();  
  4. Map context = new HashMap();  
  5. List values = new ArrayList();  
  6. for(int i=0; i<11; i++){  
  7. values.add(i);  
  8. }  
  9. context.put("values", values);  
  10. Ognl.getValue("@System@out.println(#values.size.(#this > 10 ? /"大于10/" : '不大于10'))", context, root);  
  11. }  
  12. public void testOgnl_15() throws Exception{  
  13. User user = new User();  
  14. Ognl.getValue("setUsername('ZHANGSAN')", user);  
  15. Ognl.getValue("@System@out.println(#this.username)", user);  
  16. }  
  17. public void testOgnl_16() throws Exception{  
  18. User user = new User();  
  19. Ognl.getValue("setUsername('ZHANGSAN')", user);  
  20. Ognl.getValue("@System@out.println(username.(#this.toLowerCase()))", user);  
  21. }  

 

 

 

Java代码 复制代码
  1. // ******************* 如何把表达式的解释结果作为另外一个表达式,OGNL中括号的使用 **********************//   
  2. public void testOgnl_17() throws Exception{   
  3.     Object root = new Object();   
  4.     Map context = new HashMap();   
  5.     User u = new User();   
  6.     u.setUsername("张三");   
  7.     context.put("u", u);   
  8.     context.put("fact""username");   
  9.        
  10.     /**  
  11.      * 1、首先把#fact表达式进行解释,得到一个值:username  
  12.      * 2、解释括号中的表达式#u,其结果是user对象  
  13.      * 3、把括号中表达式的结果作为root对象,解释在第一步中得到的结果(即把第一步的结果看成另外一个表达式)   
  14.      */  
  15.     String value = (String)Ognl.getValue("#fact(#u)", context, root);   
  16.     System.out.println(value);   
  17. }   
  18.   
  19. public void testOgnl_18() throws Exception{   
  20.     Person person = new Person();   
  21.     Map context = new HashMap();   
  22.     User u = new User();   
  23.     u.setUsername("张三");   
  24.     context.put("u", u);   
  25.        
  26.     /**  
  27.      * 相当于调用person这个根对象的fact方法,并把#u的解释结果作为参数传入此方法   
  28.      */  
  29.     String value = (String)Ognl.getValue("fact(#u)", context, person);   
  30.     System.out.println(value); //输出是 "张三,"   
  31. }   
  32.   
  33. public void testOgnl_19() throws Exception{   
  34.     Person person = new Person();   
  35.     Map context = new HashMap();   
  36.     User u = new User();   
  37.     u.setUsername("张三");   
  38.     context.put("u", u);   
  39.        
  40.     /**  
  41.      * 1、先计算表达式fact,得到结果是:username  
  42.      * 2、解释括号中的表达式#u,其结果是user对象  
  43.      * 3、把括号中表达式的结果作为root对象,解释在第一步中得到的结果(即把第一步的结果看成另外一个表达式)  
  44.      */  
  45.     String value = (String)Ognl.getValue("(fact)(#u)", context, person);   
  46.     System.out.println(value); //输出"张三"   
  47. }   
[java] view plaincopy
 
  1.     // ******************* 如何把表达式的解释结果作为另外一个表达式,OGNL中括号的使用 **********************//  
  2. public void testOgnl_17() throws Exception{  
  3. Object root = new Object();  
  4. Map context = new HashMap();  
  5. User u = new User();  
  6. u.setUsername("张三");  
  7. context.put("u", u);  
  8. context.put("fact""username");  
  9. /** 
  10. * 1、首先把#fact表达式进行解释,得到一个值:username 
  11. * 2、解释括号中的表达式#u,其结果是user对象 
  12. * 3、把括号中表达式的结果作为root对象,解释在第一步中得到的结果(即把第一步的结果看成另外一个表达式) 
  13. */  
  14. String value = (String)Ognl.getValue("#fact(#u)", context, root);  
  15. System.out.println(value);  
  16. }  
  17. public void testOgnl_18() throws Exception{  
  18. Person person = new Person();  
  19. Map context = new HashMap();  
  20. User u = new User();  
  21. u.setUsername("张三");  
  22. context.put("u", u);  
  23. /** 
  24. * 相当于调用person这个根对象的fact方法,并把#u的解释结果作为参数传入此方法 
  25. */  
  26. String value = (String)Ognl.getValue("fact(#u)", context, person);  
  27. System.out.println(value); //输出是 "张三,"  
  28. }  
  29. public void testOgnl_19() throws Exception{  
  30. Person person = new Person();  
  31. Map context = new HashMap();  
  32. User u = new User();  
  33. u.setUsername("张三");  
  34. context.put("u", u);  
  35. /** 
  36. * 1、先计算表达式fact,得到结果是:username 
  37. * 2、解释括号中的表达式#u,其结果是user对象 
  38. * 3、把括号中表达式的结果作为root对象,解释在第一步中得到的结果(即把第一步的结果看成另外一个表达式) 
  39. */  
  40. String value = (String)Ognl.getValue("(fact)(#u)", context, person);  
  41. System.out.println(value); //输出"张三"  
  42. }  

 

 

 

 

 

Java代码 复制代码
  1. // ********************* OGNL访问集合元素 **************************//   
  2. public void testOgnl_20() throws Exception{   
  3.     Object root = new Object();   
  4.     Map context = new HashMap();   
  5.        
  6.     //用OGNL创建List对象   
  7.     List listvalue = (List)Ognl.getValue("{123,'kdjfk','oooo'}", context, root);   
  8.     context.put("listvalue", listvalue);   
  9.        
  10.     //用OGNL创建数组   
  11.     int[] intarray= (int[])Ognl.getValue("new int[]{23,45,67}", context, root);   
  12.     context.put("intarray", intarray);   
  13.        
  14.     //用OGNL创建Map对象   
  15.     Map mapvalue = (Map)Ognl.getValue("#{'listvalue':#listvalue,'intarray':#intarray}", context, root);   
  16.     context.put("mapvalue", mapvalue);   
  17.        
  18.     Ognl.getValue("@System@out.println(#listvalue[0])", context, root);   
  19.     Ognl.getValue("@System@out.println(#intarray[1])", context, root);   
  20.     Ognl.getValue("@System@out.println(#mapvalue['intarray'][2])", context, root);   
  21.     Ognl.getValue("@System@out.println(#mapvalue.intarray[0])", context, root);   
  22. }  
分享到:
评论

相关推荐

    微信小程序 备忘录 (源码)

    微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小...

    小程序源码 备忘录 (代码+截图)

    小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+...

    微信小程序源码 备忘录(学习版)

    微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习...

    微信小程序 小工具类 备忘录 (源代码+截图)

    微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源...

    Android开发备忘录

    设计和实现一个类似个人备忘录的 Android APP ,数据库采用 SQLite (也可以直接访问 Web 端 MySQL 数据库、或提供 Web 接口访问 MySQL 数据库)。 1.用户注册和登录(这类 APP 一般面对个人,用户不需要分类别); ...

    微信小程序-------备忘录

    微信小程序备忘录,备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录...

    手机备忘录程序

    包括了备忘录程序的基本功能,添加备忘信息,时间到了会自动提醒

    备忘录模式代码示例

    备忘录模式的示例代码和文档,学习备忘录模式的参考资料。

    桌面备忘录(可放在桌面的备忘录)

    可以放在桌面的备忘录,很实用,大家下了试用才知道。。。。

    项目工程备忘录.doc

    项目工程备忘录

    java实现备忘时钟

    用java实现备忘时钟,适合初学者,用java实现备忘时钟,适合初学者,

    Android 备忘录源码.rar

    Android 备忘录源码.rar

    android备忘录app源码.zip

    android备忘录app源码

    微信小程序-备忘录-记录代办事项(源码+截图)

    微信小程序实现的简易备忘录,可以记录代办事项,可以标记事项是否完成 微信小程序实现的简易备忘录,可以记录代办事项,可以标记事项是否完成 微信小程序实现的简易备忘录,可以记录代办事项,可以标记事项是否完成...

    备忘录,免费桌面备忘录,M备忘

    十年了,再次提交自己的一个小软件。基于MFC和ACCESS数据库,桌面小软件,用于备忘。记录平时自己怕忘记的事情,占资源很小,免费。压缩包里附带源文件增加窗口透明性,最小化状态栏等等。

    效能备忘录 v5.60 Build 545.zip

    效能备忘录是一款专业的备忘录和笔记本软件。软件可以实现美观易用、功能强大的编辑器来实现用户所需的各种备忘记事功能,来实现多篇备忘、笔记和文档信息等用途。软件界面美观简洁、简单全面、实用方便,无需培训,...

    微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)

    微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本...

    毕业设计基于JavaWeb实现的一个备忘录系统项目源码.zip

    毕业设计基于JavaWeb实现的一个备忘录系统项目源码。难度适中,新手自己可操作 备忘录 介绍 后端部分基于Servlet、Jdbc实现. 前端部分基于Layui、jqury实现。 一个简单的前后端分离Demo,前后端交互JSON数据格式 ...

    微信小程序Demo:备忘录

    微信小程序Demo:备忘录

    备忘提醒51备忘

    定时提醒、备忘提醒、支持邮件短信提醒、免费的支持云功能

Global site tag (gtag.js) - Google Analytics