<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # 介紹 我們使用valueStack的主要目的是為我將我們action中產生的數據攜帶到頁面上,也就是說valueStack它就是一個容器。 在Struts2框架中將valueStack設計成一個接口。 com.opensymphony.xwork2.util.ValueStack 我們主要使用的是它的實現類 com.opensymphony.xwork2.ognl.OgnlValueStack。 當客戶端向我們發送一個請求,服務器就會創始一個Action來處理請求,struts2中的action是一個多例,每一次請求都會有一個新的action對應。所以它不存在線程安全問題。 一個valueStack對應一個action,valueStack貫穿整個action的生命周期。 `request-------Action------ValueStack` struts2框架將valueStack保存在request中 ![](https://box.kancloud.cn/2d7913ce7750a22d0e7988b3ebf4177a_1890x928.png) # valueStack內部結構 ![](https://box.kancloud.cn/5e459cf81b62aea15f88dc95a84df6f8_1674x516.png) valueStack主要有兩部分組成: CompoundRoot:它就是一個ArrayList 它主要存儲的是action的相關數據 `Map<String,Object> context`:就是一個Map ![](https://box.kancloud.cn/a83c4d1c53acfda19c936cfeeb8a02f3_1672x566.png) Context中主要存儲了一些引用,這個引用主要是關于web開發中相關信息 pameters :請求參數 request:請求對象中所有屬性 session:會話對象中所有屬性 application:application對象中的所有對象 以上都是Map ![](https://box.kancloud.cn/a8cfc0f67043b86bd78ed947af76a7ff_1552x338.png) ![](https://box.kancloud.cn/d047eb4817e5198d8a6d409b84037fa0_1142x110.png) 在struts2框架中我們通過ognl表達式來獲取valueStack中數據,沒有使用#就會從CompoundRoot中獲取數據, 如果使用#來獲取,這時就會從context中來獲取. # 獲取ValueStack ![](https://box.kancloud.cn/c3dbec762acf7e9d015bf51d5d96310f_1842x612.png) # ActionContext是什么 ActionContext它是action上下文,strtus2框架它使用actionContext來保存Action在執行過程中所需要的一些對象,例如 session, application… ActionContext的獲取 是通過它的靜態方法getContext()得到。 Struts2會根據每一次的http請求來創建對應的ActionContext,它是與當前線程綁定的。 每一次請求,就是一個線程,對應著一個request,每一次請求,會創建一個Action,每一個action對應一個ActionContext.每一次請求也對應著一個valueStack. `request---ActionContext----Action-----ValueStack`它們都對應著一次請求(一個線程). valueStack與ActionContext本質上是可以獲取 ![](https://box.kancloud.cn/bd28a1aa6d0b31c0d4d04f0f05cff07a_1844x146.png) # valueStack操作---存儲數據 注意:我們使用valueStack來存儲數據時,主要是向root中存儲。 介紹兩部分: ## 手動向valueStack存儲數據 ![](https://box.kancloud.cn/905c3c28bbdbc9d3739db44fceff6706_1884x212.png) ## Struts2框架自動向valueStack中存儲數據 每次請求,訪問action,這個對象會存儲到valueStack中。 在DefaultActionInvocation的init方法內 ![](https://box.kancloud.cn/a7c778eb65f8bd00916313505ec45bce_1458x792.png) # valueStack操作-獲取數據 ![](https://box.kancloud.cn/dd9b13f695aae39916879af7b6b13e3f_1808x542.png) Action中屬性 ![](https://box.kancloud.cn/cd0a0a689ae5b8e4043b3858aaaacec5_1544x998.png) ![](https://box.kancloud.cn/22a7c2ea4ef878d31fb3f2c39f8d1661_968x206.png) 使用模型驅動 ![](https://box.kancloud.cn/703e022bc48d96f790163d71a14f39bb_1920x378.png) ![](https://box.kancloud.cn/06ad1bc0f4363aaf0bd7865781d36bad_1432x944.png) ![](https://box.kancloud.cn/c7d843b2abe4f5a32f13c74fb1d02128_1434x816.png) # EL表達式從valueStack中獲取數據 El表達式可以從valueStack中獲取信息 ![](https://box.kancloud.cn/3a90090d977e7f27418bb714277baead_1978x1190.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看