Struts 2的OGNL的根對象


Struts2中的OGNL表達式語言是對Xwork的OGNL的封裝。我們要理解一下幾點: 
1. Struts2中將ActionContext作為OGNL的上下文環境(ActionContext內部含有一個Map對象) 
2. Struts2中的OGNL表達式語言的根對象是一個ValueStack,ValueStack中的每一個對象都被視為根對象。 
Struts2框架將實例化的Action對象放入ValueStack中,如果是Action鏈,則多個Action都存在於ValueStack中。而ValueStack中除了Action外,Struts2框架還將parameters,request,response,session,application,attr等對象放到ActionContext中,訪問這些對象需要加前綴#。 

總結:Struts2中的數據處理基於Xwork的OGNL,它在OGNL的基礎上進行了一定的封裝。OGNL的核心概念是根對象(root)和上下文環境(context)---你可以傳入一個Map對象作為上下文,向其中put進一個對象,那么這個對象可以作為根對象(ognl中可以向函數中傳入不同的Map對象作為根對象來操作,也可以指定不同的根對象,而Struts2中,它固定了根對象ValueStack)。在Struts2中,ActionContext作為OGNL的上下文環境,它的根對象是一個ValueStack,ValueStack中的每個對象都被視為根對象。Struts2中的Action作為根對象存在(如果多個Action以chain的形式存在,則多個Action均存在於ValueStack中,均為根對象)。


免責聲明!

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



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