<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 64,  comments - 9,  trackbacks - 0

    http://depravedangel.javaeye.com/blog/377740

    package org.darkness.ognl.test;

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import junit.framework.TestCase;
    import ognl.Ognl;

    import org.darkness.oa.model.Person;
    import org.darkness.oa.model.User;

    public class OgnlTest extends TestCase {
     
     // ***************** root對象的概念 ******************* //
     public void testOgnl_01() throws Exception{
      User user = new User();
      user.setUsername("暗之幻影");
      
      //相當(dāng)于調(diào)用user.getUsername()方法
      String value = (String)Ognl.getValue("username", user);
      System.out.println(value);
     }
     
     public void testOgnl_02() throws Exception{
      User user = new User();
      Person p = new Person();
      p.setName("暗之幻影");
      user.setPerson(p);
      
      //相當(dāng)于調(diào)用user.getPerson().getName()方法
      String value = (String)Ognl.getValue("person.name", user);
      System.out.println(value);
     }
     
     public void testOgnl_03() throws Exception{
      User user = new User();
      Person p = new Person();
      p.setName("暗之幻影");
      user.setPerson(p);
      
      //可以使用#root來引用根對象,相當(dāng)于調(diào)用user.getPerson().getName()方法
      String value = (String)Ognl.getValue("#root.person.name", user);
      System.out.println(value);
     }
     
     // *********************** context的概念 **********************//
     public void testOgnl_04() throws Exception{
      Person p1 = new Person();
      Person p2 = new Person();
      p1.setName("風(fēng)");
      p2.setName("云");

      Map<String,Person> context = new HashMap<String,Person>();
      context.put("p1", p1);
      context.put("p2", p2);
      
      // 需要加上#才表示到context中取數(shù)據(jù),否則表示從根目錄下取值
      String value = (String)Ognl.getValue("#p1.name + ',' + #p2.name", context, new Object());
      System.out.println(value);
     }
     
     public void testOgnl_05() throws Exception{
      Person p1 = new Person();
      Person p2 = new Person();
      p1.setName("風(fēng)");
      p2.setName("云");
      
      Map<String,Person> context = new HashMap<String,Person>();
      context.put("p1", p1);
      context.put("p2", p2);
      
      User root = new User();
      root.setUsername("雨");
      
      String value = (String)Ognl.getValue("#p1.name + ',' + #p2.name + ',' + username", context, root);
      System.out.println(value);
     }
     
     // ******************* OGNL賦值操作 ************************//
     public void testOgnl_06() throws Exception{
      User user = new User();
      
      //給root對象的屬性賦值,相當(dāng)于調(diào)用user.setUsername()
      Ognl.setValue("username", user, "暗之幻影");
      
      System.out.println(user.getUsername());
     }
     
     public void testOgnl_07() throws Exception{
      User user = new User();

      Map<String, User> context = new HashMap<String, User>();
      context.put("u", user);
      
      //給context中的對象屬性賦值,相當(dāng)于調(diào)用user.setUsername()
      Ognl.setValue("#u.username", context, new Object(), "暗之幻影");
      
      System.out.println(user.getUsername());
     }
     
     public void testOgnl_08() throws Exception{
      User user = new User();
      
      Map<String, User> context = new HashMap<String, User>();
      context.put("u", user);
      
      //給context中的對象屬性賦值,相當(dāng)于調(diào)用user.setUsername()
      //在表達(dá)式中使用=賦值操作符來賦值
      Ognl.getValue("#u.username = '暗之幻影'",context, new Object());
      
      System.out.println(user.getUsername());
     }
     
     public void testOgnl_09() throws Exception{
      User user = new User();
      Person p = new Person();
      
      Map<String,Object> context = new HashMap<String,Object>();
      context.put("u", user);
      context.put("p", p);
      
      //給context中的對象屬性賦值,相當(dāng)于調(diào)用user.setUsername()
      //在表達(dá)式中使用=賦值操作符來賦值
      Ognl.getValue("#u.username = '風(fēng)',#p.name = '云'",context, new Object());
      
      System.out.println(user.getUsername()+","+p.getName());
     }
     
     //****************** 使用OGNL調(diào)用對象的方法 **********************//
     public void testOgnl_10() throws Exception{
      User user = new User();
      user.setUsername("暗之幻影");
      
      String value = (String)Ognl.getValue("getUsername()", user);
      System.out.println(value);
     }
     
     public void testOgnl_11() throws Exception{
      User user = new User();
      
      Ognl.getValue("setUsername('暗之幻影')", user);
      System.out.println(user.getUsername());
     }
     
     // ******************* OGNL調(diào)用類變量、靜態(tài)方法 *************************//
     public void testOgnl_12() throws Exception{
      User user = new User();
      
      Ognl.getValue("setUsername('暗之幻影')", user);
      Ognl.getValue("@System@out.println(username)", user);
     }
     
     public void testOgnl_13() throws Exception{
      User user = new User();
      
      Ognl.getValue("setUsername('暗之幻影')", user);
      Ognl.getValue("@System@out.println(@org.darkness.struts2.test.Utils@toLowerCase(username))", user);
     }
     
     // ********************* OGNL中的this表達(dá)式 **********************//
     public void testOgnl_14() throws Exception{
      Object root = new Object();
      Map context = new HashMap();
      
      List values = new ArrayList();
      for(int i=0; i<11; i++){
       values.add(i);
      }
      context.put("values", values);
      
      Ognl.getValue("@System@out.println(#values.size.(#this > 10 ? \"大于10\" : '不大于10'))", context, root);
      
     }
     
     public void testOgnl_15() throws Exception{
      User user = new User();
      
      Ognl.getValue("setUsername('暗之幻影')", user);
      Ognl.getValue("@System@out.println(#this.username)", user);
     }
     
     public void testOgnl_16() throws Exception{
      User user = new User();
      
      Ognl.getValue("setUsername('暗之幻影')", user);
      Ognl.getValue("@System@out.println(username.(#this.toLowerCase()))", user);
     }
     
     // ******************* 如何把表達(dá)式的解釋結(jié)果作為另外一個表達(dá)式,OGNL中括號的使用 **********************//
     public void testOgnl_17() throws Exception{
      Object root = new Object();
      Map context = new HashMap();
      User u = new User();
      u.setUsername("暗之幻影");
      context.put("u", u);
      context.put("fact", "username");
      
      /**
       * 1、首先把#fact表達(dá)式進(jìn)行解釋,得到一個值:username
       * 2、解釋括號中的表達(dá)式#u,其結(jié)果是user對象
       * 3、把括號中表達(dá)式的結(jié)果作為root對象,解釋在第一步中得到的結(jié)果(即把第一步的結(jié)果看成另外一個表達(dá)式)
       */
      String value = (String)Ognl.getValue("#fact(#u)", context, root);
      System.out.println(value);
     }
     
     public void testOgnl_18() throws Exception{
      Person person = new Person();
      Map context = new HashMap();
      User u = new User();
      u.setUsername("暗之幻影");
      context.put("u", u);
      
      /**
       * 相當(dāng)于調(diào)用person這個根對象的fact方法,并把#u的解釋結(jié)果作為參數(shù)傳入此方法
       */
      String value = (String)Ognl.getValue("fact(#u)", context, person);
      System.out.println(value); //輸出是 "暗之幻影,"
     }
     
     public void testOgnl_19() throws Exception{
      Person person = new Person();
      Map context = new HashMap();
      User u = new User();
      u.setUsername("暗之幻影");
      context.put("u", u);
      
      /**
       * 1、先計算表達(dá)式fact,得到結(jié)果是:username
       * 2、解釋括號中的表達(dá)式#u,其結(jié)果是user對象
       * 3、把括號中表達(dá)式的結(jié)果作為root對象,解釋在第一步中得到的結(jié)果(即把第一步的結(jié)果看成另外一個表達(dá)式)
       */
      String value = (String)Ognl.getValue("(fact)(#u)", context, person);
      System.out.println(value); //輸出"暗之幻影"
     }
     
     // ********************* OGNL訪問集合元素 **************************//
     public void testOgnl_20() throws Exception{
      Object root = new Object();
      Map context = new HashMap();
      
      //用OGNL創(chuàng)建List對象
      List listvalue = (List)Ognl.getValue("{123,'暗之幻影','風(fēng)之水影'}", context, root);
      context.put("listvalue", listvalue);
      
      //用OGNL創(chuàng)建數(shù)組
      int[] intarray= (int[])Ognl.getValue("new int[]{23,45,67}", context, root);
      context.put("intarray", intarray);
      
      //用OGNL創(chuàng)建Map對象
      Map mapvalue = (Map)Ognl.getValue("#{'listvalue':#listvalue,'intarray':#intarray}", context, root);
      context.put("mapvalue", mapvalue);
      
      Ognl.getValue("@System@out.println(#listvalue[0])", context, root);
      Ognl.getValue("@System@out.println(#intarray[1])", context, root);
      Ognl.getValue("@System@out.println(#mapvalue['intarray'][2])", context, root);
      Ognl.getValue("@System@out.println(#mapvalue.intarray[0])", context, root);
     }
    }

    posted on 2009-10-19 10:16 super_nini 閱讀(1502) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    相冊

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产va精品免费观看| 一级免费黄色毛片| 国产免费的野战视频| 亚洲一区二区成人| 四虎国产精品永久免费网址 | 久久精品国产亚洲av麻豆色欲| 精品熟女少妇aⅴ免费久久 | 亚洲AV无码精品色午夜果冻不卡| 黄色网站软件app在线观看免费| 亚洲欭美日韩颜射在线二| 中文字幕在线免费视频| 亚洲国产精品SSS在线观看AV| 欧洲人免费视频网站在线| 久久精品国产亚洲av影院| 99热在线精品免费全部my| 亚洲av日韩av永久无码电影| 免费在线视频一区| GOGOGO免费观看国语| 久久久久久亚洲精品成人| 国产一卡二卡四卡免费| 亚洲大尺度无码无码专线一区| 免费人成无码大片在线观看| a级毛片在线免费观看| 亚洲欧洲国产经精品香蕉网| a毛片基地免费全部视频| 国产成人亚洲精品蜜芽影院| 亚洲日韩精品无码专区网址| 2021国内精品久久久久精免费| 亚洲一区二区三区高清在线观看| 亚洲国产精品毛片av不卡在线| 国产成人AV片无码免费| 亚洲日韩国产二区无码| 久久久久亚洲AV成人网人人软件| 老汉精品免费AV在线播放| 亚洲精品蜜夜内射| 亚洲中文字幕第一页在线| 亚洲精品免费网站| 两个人日本WWW免费版| 亚洲国产成人久久| 国产成人精品亚洲精品| 黄色片在线免费观看|