1. 程式人生 > >深入理解struts2中的值棧

深入理解struts2中的值棧

1.什麼是值棧

(1)之前web階段

servlet裡進行操作,把資料放到域物件中,然後在頁面中使用el表示式獲取到。域物件就是在一定範圍內來存執和取值(屬性作用範圍)

(2)struts2

提供本身的一種儲存機制(此前用servlet的物件),類似於域物件,叫做值棧。是可以存值和取值的

action中把資料放到值棧中,然後在頁面中獲取到值棧資料

(3)servletaction的區別

·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

的方法有返回值,配置返回值到jsp頁面中。我們是在jsp頁面中使用這個標籤來檢視資訊

 

點選超連結看到結構

 

·在action沒有做任何操作時,棧頂元素是

 

-action物件裡面有值棧物件

-值棧物件裡面有action引用

以上是個人學習筆記。

增加別人對值棧的理解的連線,以便日後檢視:來自簡書:來自簡書的對值棧的深入淺出的理解