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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章