Struts2學習記錄2(ValueStack(值棧)和ognl)

一、ValueStack(值棧)

1、是ActionContext中的一個對象,值棧是棧結構(FILO:先進後出);

Struts2中值棧存放的數據是Action對象

注意:Action對象可以ValueStack,我們可以對象值棧進行操作,但是建議不是很熟就不要去操作了

二、ognl(對象圖形導航語言)表達式  也就是一個第三方的插件

學過的表達式--el表達式-等---用簡潔的表達式完成比較複雜的功能

1、能夠訪問對象的普通方法

2、能夠訪問類的靜態屬性和靜態方法

3、強大的操作幾個類對象的能力

4、支持賦值操作和表達式串聯

5、訪問OGNL上下文的ActionContext(一般都使用這個)



Struts2中使用該表達式是通過Struts2的標籤來取的

需要的包

<!-- Struts2中的ognl表達式包 -->
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.4</version>
</dependency>

在jsp頁面中如下引入標籤庫

<%@ taglib prefix="s" uri="/struts-tags" %>  

在頁面中使用可以直接<s:property value="action中的屬性名"/>

或者是<s:property value="#session.user"中的屬性名"/>


這就是在學習記錄1中的那個大數據(大範圍的數據)及ActionContext中的前五大對象

ActionContext包含6大對象:

1,Application

2,request

3,session

4,attr(page->request->sesssion->application)括號中是取值順序

5,parameters

6,ValueStack(值棧)

然後不加#號取值的話就是取值棧中的數據

注意:要使用struts2的標籤,那麼要通過struts2過濾器來啓用,如果過濾器的配置爲 *.action的時候不能直接訪問jsp頁面,需要action跳轉

如果直接訪問/*是可以直接訪問jsp頁面,

Struts推薦不能直接訪問jsp頁面,推薦使用action來控制

結論:使用ognl表達式訪問action屬性時,可以直接訪問,訪問ActionContext中的數據的時候需要加上#



發佈了43 篇原創文章 · 獲贊 18 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章