struts框架值棧問題三之值棧的建立和ActionContext物件的關係
阿新 • • 發佈:2018-12-15
3. 問題三 : 值棧物件的建立,ValueStack 和 ActionContext 是什麼關係? * 值棧物件是請求時建立的 * ActionContext是繫結到當前的執行緒上(一個Action訪問下來是一個執行緒,action使用的是同一個上下文,所以ActionContext是繫結到當前集合上的),那麼在每個攔截器或者Action中獲取到的ActionContext是同一個。 * ActionContext中存在一個Map集合,該Map集合和ValueStack的context是同一個地址。 * ActionContext中可以獲取到ValueStack的引用,以後再開發,使用ActionContext來獲取到值棧物件
所以ActionContext操作map集合中的資料時,可以等價的認為是操作context中的資料;反之,當我們操作context中的資料時,也可以認為是在操作ActionContext中的map集合。所以上下文與值棧可以互相引用。
當建立Action的時候,會建立ActionContext和ValueStack。ActionContext中有一個map集合,ValueStack中有一個context。map集合與context是同一塊地址,所以操作map就相當於操作context,操作context就相當於操作map。
ActionContext與ValueStack還可以互相得到。