日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

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

總結(jié)

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

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