夢(mèng)幻之旅

          DEBUG - 天道酬勤

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

              WebOGNL是一種構(gòu)建以servlet為基礎(chǔ)的組件化應(yīng)用的web表現(xiàn)層框架,它的模板語言建立在OGNL表達(dá)式的基礎(chǔ)上,具有別的web層框架不能匹敵的適應(yīng)性。

              OGNL可以讓我們用非常簡(jiǎn)單的表達(dá)式訪問對(duì)象層,例如,當(dāng)前環(huán)境的根對(duì)象為user1,則表達(dá)式person.address[0].province
          可以訪問到user1的person屬性的第一個(gè)address的province屬性。

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

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

              和struts1.x的formbean相比,這樣做的好處非常明顯:在webwork中不需要為每個(gè)頁面專門寫formbean,可以直接利用對(duì)象層的對(duì)象。例如在對(duì)象設(shè)計(jì)中,我們的User和Person是分開的,而一個(gè)注冊(cè)用戶界面需要填寫兩者的內(nèi)容,在webwork中,就可以保持后臺(tái)的對(duì)象結(jié)構(gòu),把屬于用戶屬性的界面元素用user.person.xxx綁定,把屬于賬號(hào)屬性的界面元素用user.xxx綁定。
          posted on 2008-03-25 19:01 HUIKK 閱讀(453) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 凯里市| 额济纳旗| 屏东市| 永靖县| 东源县| 水富县| 涟源市| 东城区| 太和县| 蒙山县| 志丹县| 崇礼县| 泰州市| 赤城县| 梅河口市| 汪清县| 武邑县| 藁城市| 文山县| 安徽省| 德化县| 五大连池市| 昔阳县| 织金县| 金溪县| 裕民县| 博白县| 陵川县| 宁津县| 辽宁省| 洛隆县| 南汇区| 尤溪县| 来宾市| 乃东县| 晋城| 新昌县| 聊城市| 夏津县| 建宁县| 阜南县|