ValueStack

ValueStack

Struts2將XWork對Ognl的擴展這一套機制封裝起來,這個對象叫ValueStack。

ValueStack實際上就是一個容器。它由Struts框架創建,當前端頁面如jsp傳送一個請求時,Struts的默認攔截器會將請求中的數據進行封裝,併入ValueStack的棧頂。

基本介紹

  • 中文名:值棧空間
  • 外文名:ValueStack
Struts2在啟動時,會創建一個ValueStack對象 當用戶傳送請求到對應的Action時,Struts2會把當前被請求的Action01放入CompoundRoot 對象的“棧空間”棧頂,請求結束,Action01會被清除。 (當下一次另一個請求到來時,Struts2會把該請求對應的Action02放入“棧頂”) 所以,我們可以通過Ognl表達式訪問CompoundRoot對象棧頂的Action。
Struts2在請求到來時,首先會創建一個ValueStack; 然後,把當前的Action對象放入棧頂(CompoundRoot); Struts2會把ValueStack存放在request中,屬性為”struts.valueStack“, 所以,標記庫可以訪問到ValueStack Struts2的很多標記就是通過訪問ValueStack獲得數據的:
 通過ognl從ValueStack取數據,並且顯示
<s:property value="ognl..."/>
 省略value,取出ValueStack的棧頂
<s:property />
 通過ognl從ValueStack取出集合,依次將集合中的對象置於棧頂,在循環中,ValueStack棧頂即為要顯示的數據

相關詞條

熱門詞條

聯絡我們