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

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

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

    Knight of the round table

    wansong

    Struts2 關(guān)于OGNL的%#$的應(yīng)用

    http://hi.baidu.com/zhouhwbuaa/blog/item/b9b23bfbd478ab106c22eb0e.html

    http://wallboy.javaeye.com/blog/513096  OGNL表達(dá)式語言介紹


    訪問OGNL上下文和Action上下文,#相當(dāng)于ActionContext.getContext();下表有幾個ActionContext中有用的屬性:   名稱 作用 例子
    parameters 包含當(dāng)前HTTP請求參數(shù)的Map #parameters.id[0]作用相當(dāng)于request.getParameter("id")
    request 包含當(dāng)前HttpServletRequest的屬性(attribute)的Map #request.userName相當(dāng)于request.getAttribute("userName")
    session 包含當(dāng)前HttpSession的屬性(attribute)的Map #session.userName相當(dāng)于session.getAttribute("userName")
    application 包含當(dāng)前應(yīng)用的ServletContext的屬性(attribute)的Map #application.userName相當(dāng)于application.getAttribute("userName")
    attr 用于按request > session > application順序訪問其屬性(attribute) #attr.userName相當(dāng)于按順序在以上三個范圍(scope)內(nèi)讀取userName屬性,直到找到為止

    用于過濾和投影(projecting)集合,如books.{?#this.price<100};
    構(gòu)造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。

    “%”符號的用途是在標(biāo)志的屬性為字符串類型時,計算OGNL表達(dá)式的值。
    “$”有兩個主要的用途,用于在國際化資源文件中,引用OGNL表達(dá)式。在Struts 2配置文件中,引用OGNL表達(dá)式。



    Struts2中的OGNL表達(dá)式語言是對Xwork的OGNL的封裝。我們要理解一下幾點(diǎn):
    1. Struts2中將ActionContext作為OGNL的上下文環(huán)境(ActionContext內(nèi)部含有一個Map對象)
    2. Struts2中的OGNL表達(dá)式語言的根對象是一個ValueStack,ValueStack中的每一個對象都被視為根對象。
    Struts2框架將實(shí)例化的Action對象放入ValueStack中,如果是Action鏈,則多個Action都存在于 ValueStack中。而ValueStack中除了Action外,Struts2框架還將 parameters,request,response,session,application,attr等對象放到ValueStack中,訪問這些對象需要加前綴#。

    總結(jié):Struts2中的數(shù)據(jù)處理基于Xwork的OGNL,它在OGNL的基礎(chǔ)上進(jìn)行了一定的封裝。OGNL的核心概念是根對象(root)和上下文環(huán)境(context)---你可以傳入一個Map對象作為上下文,向其中put進(jìn)一個對象,那么這個對象可以作為根對象(ognl中可以向函數(shù)中傳入不同的Map對象作為根對象來操作,也可以指定不同的根對象,而Struts2中,它固定了根對象ValueStack)。在Struts2 中,ActionContext作為OGNL的上下文環(huán)境,它的根對象是一個ValueStack,ValueStack中的每個對象都被視為根對象。 Struts2中的Action作為根對象存在(如果多個Action以chain的形式存在,則多個Action均存在于ValueStack中,均為根對象)。


    <s:property value="user.name" />

    <s:property value="%{#application.myApplicationAttribute}" />
    <s:property value="%{#session.mySessionAttribute}" />
    <s:property value="%{#request.myRequestAttribute}" />
    <s:property value="%{#parameters.myParameter}" />



    posted on 2010-07-23 12:32 w@ns0ng 閱讀(375) 評論(0)  編輯  收藏 所屬分類: Struts

    主站蜘蛛池模板: 日韩免费a级在线观看| 114一级毛片免费| 成人亚洲网站www在线观看 | 国产无遮挡吃胸膜奶免费看| 亚洲人成77777在线播放网站不卡 亚洲人成77777在线观看网 | 国产高清免费在线| www亚洲精品久久久乳| 国产一区二区三区无码免费| 亚洲精品av无码喷奶水糖心| 免费观看国产小粉嫩喷水| 日本激情猛烈在线看免费观看 | 亚洲av最新在线网址| 免费国产污网站在线观看15| 亚洲精品美女视频| 在线观看av永久免费| 亚洲中文无码mv| 婷婷亚洲天堂影院| 特级无码毛片免费视频尤物| 亚洲av无码电影网| 免费观看日本污污ww网站一区| 国产在线观看无码免费视频| 亚洲高清免费在线观看| 在线看片韩国免费人成视频| 亚洲精品一卡2卡3卡四卡乱码| 亚洲电影日韩精品| 99久久久国产精品免费牛牛四川| 亚洲一区无码中文字幕乱码| 免费不卡中文字幕在线| 久久精品成人免费网站| 亚洲综合色7777情网站777| 亚洲成年看片在线观看| 在线免费中文字幕| 特级av毛片免费观看| 久久精品国产亚洲AV网站| 成人人观看的免费毛片| 久久九九久精品国产免费直播| 亚洲嫩草影院在线观看| 可以免费观看的一级毛片| 免费A级毛片无码视频| 亚洲av纯肉无码精品动漫| 久久久亚洲欧洲日产国码农村|