深入理解struts2中的值棧
阿新 • • 發佈:2019-01-30
1.什麼是值棧
(1)之前web階段
在servlet裡進行操作,把資料放到域物件中,然後在頁面中使用el表示式獲取到。域物件就是在一定範圍內來存執和取值(屬性作用範圍)
(2)在struts2中
提供本身的一種儲存機制(此前用servlet的物件),類似於域物件,叫做值棧。是可以存值和取值的
在action中把資料放到值棧中,然後在頁面中獲取到值棧資料
(3)servlet和action的區別
·servlet:預設在第一次訪問時建立,建立一次,單例項物件
·action:訪問時建立,每次訪問action時都會建立一個action物件(執行構造方法),訪問多次建立多次。是多例項物件
(4)值棧儲存位置
·每次訪問action時候,都會建立物件
·在每個action物件中都會有一個值棧物件(只有一個)
2.獲取值棧物件
(1)獲取值棧物件的多種方式
·常用方式:使用ActionContext類中的方法得到值棧物件
·每個action物件中只有一個值棧物件
結果為:true
(2)關於棧的理解(後進先出)
3.值棧的內部結構
(1)值棧分為兩部分
第一部分:root,結構是list集合
一般操作的都是root裡的資料
第二部分:context,結構map集合
(2)struts2裡的標籤s:debug,使用這個標籤可以檢視值棧結構和儲存值
·訪問action,執行action
點選超連結看到結構
·在action沒有做任何操作時,棧頂元素是
-action物件裡面有值棧物件
-值棧物件裡面有action引用
以上是個人學習筆記。
增加別人對值棧的理解的連線,以便日後檢視:來自簡書:來自簡書的對值棧的深入淺出的理解