什么是ValueStack


什么是ValueStack

Strut2的Action類通過屬性可以獲得所有相關的值,如請求參數屬性值等。要獲得這些參數值,我們要做的唯一一件事就是在Action類中聲明與參數同名的屬性。在Struts2調用Action類的Action方法(默認是execute方法)之前,就會為相應的Action屬性賦值。要完成這個功能,有很大程度上,Struts2要依賴於ValueStack對象。這個對象貫穿整個Action的生命周期,每個Action類的對象實例會擁有一個ValueStack對象。

當Struts2接收到一個.action的請求后,會先建立Action類的對象實例,但並不會調用Action方法,而是先將Action類的相應屬性放到ValueStack對象的頂層節點(ValueStack對象相當於一個棧)。只是所有的屬性值都是默認的值,如String類型的屬性值為null,int類型的屬性值為0等。在處理完上述工作后,Struts 2就會調用攔截器鏈中的攔截器,這些攔截器會根據用戶請求參數值去更新ValueStack對象頂層節點的相應屬性的值,最后會傳到Action對象,並將ValueStack對象中的屬性值,賦給Action類的相應屬性。當調用完所有的攔截器后,才會調用Action類的Action方法。ValueStack會在請求開始時被創建,請求結束時消亡。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM