OGNL表達式中可以使用$、#、和%三個符號。 通常時候,%很少使用。 但#的用法非常廣泛, 1.直接在表達式中生成Map對象時就是用該符號。 2.訪問Stack Context中的值都需要使用。 3.在表達式中生成Map集合。 $的用法: 1.取出集合元素的最後一個元素。 2.直接訪問ValueStack根的屬性。 如下圖所示: 如果實在不懂,使用<s:debug/>看一下這個調試頁,然後決定用#或$吧。 Struts2還提供了一些命名對象,這些命名對象與根對象無關,它們只是存在於Stack Context中。所以,訪問這些對象時需要使用#前綴來指明。 1.parameters對象:用於訪問HTTP請求參數。例如#parameters['foo']或#parameters.foo,用於返回調用HttpServletRequest的getParameter("foo")方法的返回值。 2.request對象:用於訪問HttpServletRequest的屬性。例如# request ['foo']或# request.foo,用於返回調用HttpServletRequest的getAttribute("foo")方法的返回值。 3.session對象:用於訪問HttpSession的屬性。例如# session ['foo']或# session.foo,用於返回調用HttpSession的getAttribute("foo")方法的返回值。 4.application對象:用於訪問ServletContext的屬性。例如# application ['foo']或# application.foo,用於返回調用ervletContext的getAttribute("foo")方法的返回值。 5.attr對象:該對象將依次搜索如下對象:PageContext、HttpServletRequest、HttpSession、ServletContext中的屬性。 注意:當系統創建了Action實例後,該Action實例已經被保存到ValueStack中,故無需書寫#即可訪問Action屬性。 |
Struts2的OGNL表達式中三個符號的用法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.