夢幻之旅

          DEBUG - 天道酬勤

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
          OGNL是Object-Graph(圖) Navigation(導航) Language的縮寫,它是一種功能強大的表達式語言(Expression Language,簡稱為EL),通過它簡單一致的表達式語法,可以存取對象的任意屬性,調用對象的方法,遍歷整個對象的結構圖,實現字段類型轉化等功能。它使用相同的表達式去存取對象的屬性。

              WebOGNL是一種構建以servlet為基礎的組件化應用的web表現層框架,它的模板語言建立在OGNL表達式的基礎上,具有別的web層框架不能匹敵的適應性。

              OGNL可以讓我們用非常簡單的表達式訪問對象層,例如,當前環境的根對象為user1,則表達式person.address[0].province
          可以訪問到user1的person屬性的第一個address的province屬性。

              這種功能是模板語言的一個重要補充,象jsp2.0,velocity,jelly等等,都有類似的功能,但是ognl比它們完善得多,而且以一個獨立的lib出現,方便我們構建自己的框架。

              webwork2和現在的Struts2.x中使用OGNL取代原來的EL來做界面數據綁定,所謂界面數據綁定,也就是把界面元素(例如一個textfield,hidden)和對象層某個類的某個屬性綁定在一起,修改和顯示自動同步。

              和struts1.x的formbean相比,這樣做的好處非常明顯:在webwork中不需要為每個頁面專門寫formbean,可以直接利用對象層的對象。例如在對象設計中,我們的User和Person是分開的,而一個注冊用戶界面需要填寫兩者的內容,在webwork中,就可以保持后臺的對象結構,把屬于用戶屬性的界面元素用user.person.xxx綁定,把屬于賬號屬性的界面元素用user.xxx綁定。
          posted on 2008-03-25 19:01 HUIKK 閱讀(454) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 扶沟县| 建瓯市| 兖州市| 新竹市| 泽普县| 富源县| 龙门县| 易门县| 将乐县| 嘉鱼县| 南木林县| 南部县| 中方县| 防城港市| 嘉义市| 叶城县| 三河市| 衢州市| 赤城县| 镇江市| 普定县| 翁源县| 阜阳市| 沧州市| 德阳市| 昌江| 许昌县| 米林县| 辽宁省| 安乡县| 称多县| 阿拉善盟| 广德县| 齐河县| 石台县| 依安县| 南汇区| 那曲县| 望谟县| 洛南县| 潞西市|