日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

OGNL表达式语言中的#和$的区别

發(fā)布時(shí)間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OGNL表达式语言中的#和$的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Struts2使用標(biāo)準(zhǔn)的Context來(lái)進(jìn)行OGNL表達(dá)式語(yǔ)言求值,OGNL的頂級(jí)對(duì)象是一個(gè)Context,這個(gè)Context對(duì)象就是一個(gè)Map類型實(shí)例,其根對(duì)象就是
ValueStack,如果需要訪問(wèn)ValueStack里的屬性,直接通過(guò)如下方式即可:
?? ?//取得ValueStack中bar屬性
?? ?${bar}
除此之外,Struts2還提供了一些命名對(duì)象,但是這些命名對(duì)象都不是Stack Context的跟對(duì)象,它們只是存在于StackValue中。所以訪問(wèn)這些對(duì)象時(shí)需要使用“#”前綴來(lái)指明。
?? ?parameters對(duì)象:用于訪問(wèn)HTTP請(qǐng)求參數(shù)。例如#parameters['foo']或#parameters.foo,用于返回調(diào)用HttpServletRequest的getParameters("foo")方法的返回值。
?? ?request對(duì)象:用于訪問(wèn)HttpServletRequest的屬性。例如#request['foo']或#request.foo,用于返回調(diào)用HttpServletRequest的getAttribute("foo")方法的返回值。
?? ?session對(duì)象:用于訪問(wèn)HttpSession的屬性。例如#session['foo']或#session.foo,用于返回調(diào)用HttpSession的getAttribute("foo")方法的返回值。
?? ?application對(duì)象:用于訪問(wèn)ServletContext的屬性。例如#application['foo']或#application.foo,用于返回調(diào)用ServletContext的getAttribute("foo")方法的返回值。
?? ?att對(duì)象:該對(duì)象將依次搜素如下對(duì)象:PageContext,HttpServletRequest,HttpSession,ServletContext中的屬性。
?? ?
總結(jié):
?? ?OGNL的Stack Context是整個(gè)OGNL計(jì)算,求值的Context,而ValueStack只是StackContext內(nèi)的“根”對(duì)象而已。OGNL的Stack Context里除了ValueStack這個(gè)根對(duì)象外,還包括parameters,request,session,application,attr等命名對(duì)象,但這些命名對(duì)象都不是根對(duì)象。Stack Context中的“根”對(duì)象和其他普通對(duì)象的區(qū)別在于:
?? ?訪問(wèn)Stack Context里的普通命名對(duì)象需要在對(duì)象前加前綴“#”
?? ?當(dāng)訪問(wèn)OGNL的Stack Context里的“根”對(duì)象的屬性時(shí),可以省略對(duì)象名

總結(jié)

以上是生活随笔為你收集整理的OGNL表达式语言中的#和$的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。