初学者易上手的SSH-struts2 04值栈与ognl表达式

邢天的小木屋 2017-10-15

什么是值栈?struts2里面本身提供的一种存储机制,类似于域对象,值栈,可以存值和取值.,特点:先进后出。如果将它当做一个容器的话,而这个容器有两个元素,那么最上面的元素叫做栈顶元素,也就是所说的压栈。

action和servlet区别:每次访问的action的时候,都会创建一个新的action对象,而servlet只会创建一个对象。每次访问action都会创建一个action对象,action对象里面都且只有一个值栈的对象。

我们可以使用 <s:debug></s:debug>标签来查看值栈的结构以及存于值栈中的值。值栈的结构分为:root,结果是list集合,context,结果是map集合。那么怎么使用s标签?在页面上导入s标签库就可以使用了,<%@ taglib uri="/struts-tags" prefix="s"%>,就想c标签库一样。

那么首先我们来获取值栈对象,里面存入值。

初学者易上手的SSH-struts2 04值栈与ognl表达式

获取值栈对象值:

初学者易上手的SSH-struts2 04值栈与ognl表达式

存入变量值:

初学者易上手的SSH-struts2 04值栈与ognl表达式

获取变量值:

<s:property value="name" />

存入对象值:

初学者易上手的SSH-struts2 04值栈与ognl表达式

获取对象值:

<s:property value="users.name" />
<s:property value="users.pwd" />

存入对象集合

初学者易上手的SSH-struts2 04值栈与ognl表达式

获取对象集合的值:

初学者易上手的SSH-struts2 04值栈与ognl表达式

存入

// 域对象
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("hun", "gggg的你大爷");

获取域对象值,在域对象中取值要加#

<s:property value="#request.hun" />

如果一个s标签的文本框要附上值栈的值,那么要如下写法:<s:textfield value="%{name}"></s:textfield>。

关于s标签我就不过多介绍了。附图一张

初学者易上手的SSH-struts2 04值栈与ognl表达式

相关推荐