posts - 495,  comments - 11,  trackbacks - 0

          下面以一個簡單的示例來幫助讀者理解OGNL表達式。使用OGNL表達式,需要在www.ognl.org網站下載一個ognl.jar插件包,將該文件復制到classpath路徑下即可。建立一個復合類型,如代碼8.1所示。

          代碼8.1定義復合類型

          package ch8;
          import java.util.Date;
          //
          團隊類
          public class Team {
          //
          團隊名稱
          private String teamname;
          //
          定義團隊人員屬性
          private Person person;
          //
          團隊人數
          private int personnum;
          //
          屬性的gettersetter方法
          public String getTeamname() {
          return teamname;
          }
          public void setTeamname(String teamname) {
          this.teamname = teamname;
          }
          public Person getPerson() {
          return person;
          }
          public void setPerson(Person person) {
          this.person = person;
          }
          public int getPersonnum() {
          return personnum;
          }
          public void setPersonnum(int personnum) {
          this.personnum = personnum;
          }
          }
          //
          定義人員類
          class Person {
          //
          姓名
          private String name;
          //
          年齡
          private int age;
          //
          人員出生日期
          private Date birthday;
          //
          屬性的gettersetter方法
          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 Date getBirthday() {
          return birthday;
          }
          public void setBirthday(Date birthday) {
          this.birthday = birthday;
          }
          }

          代碼8.1所示內容定義了兩個復合類型:團隊(team)和人員(person)類型。使用OGNL表達式示例,如代碼8.2所示。

          代碼8.2使用OGNL表達式示例

          package ch8;
          import java.util.HashMap;
          import java.util.Map;
          import ognl.Ognl;
          import ognl.OgnlException;
          public class TestOGNL {
          public static void main(String[] args) {
          //
          定義一個Map對象
          Map m = new HashMap();
          //
          定義一個Team對象
          Team team1 = new Team();
          team1.setTeamname("
          團隊1");
          //
          定義一個Person對象
          Person person1 = new Person();
          person1.setName("pla1");
          //
          添加team元素
          team1.setPerson(person1);
          //
          定義一個Team對象
          Team team2 = new Team();
          team2.setTeamname("
          團隊2");
          //
          定義一個Person對象
          Person person2 = new Person();
          person2.setName("pla2");
          //
          添加team元素
          team2.setPerson(person2);

          //
          添加Map元素
          m.put("team1", team1);
          m.put("team2", team2);
          try {
          System.out.println(Ognl.getValue("team1.teamname", m));
          System.out.println(Ognl.getValue("team2.person.name", m));
          System.out.println(Ognl.getValue("teamname", team2));
          System.out.println(Ognl.getValue("person.name", team2));
          } catch (OgnlException e) {
          }
          }
          }


          代碼8.2所示內容定義了一個Map類型的嵌套屬性,如圖8.1所示。

          ??

          8.1嵌套屬性示意圖

          運行該示例,控制器顯示如下信息:

          團隊1
          pla2
          團隊2
          pla2

          說明

          OGNL可以使用非常簡單的表達式來訪問多層嵌套屬性,為開發者提供了一個有力的工具。

          posted on 2009-08-13 14:25 jadmin 閱讀(138) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 岢岚县| 攀枝花市| 邯郸市| 三穗县| 阳山县| 文登市| 宣威市| 军事| 本溪市| 梧州市| 文昌市| 咸阳市| 合作市| 灯塔市| 鹿泉市| 阳曲县| 江城| 双流县| 保靖县| 永川市| 铜梁县| 长沙市| 乌审旗| 贵德县| 民县| 永吉县| 普定县| 虎林市| 外汇| 福建省| 弥勒县| 常熟市| 深圳市| 游戏| 三明市| 松溪县| 大冶市| 宝坻区| 长子县| 闵行区| 二连浩特市|