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

什么是值栈?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标签库一样。

那么首先我们来

获取值栈对象,里面存入值:

获取值栈对象值:

<!-- set值 -->
 <s:property value="set" />

<!-- push值 -->
<s:property value="[1].top"/>

存入变量值:

获取变量值:

<s:property value="name" />

存入对象值:

获取对象值:

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

存入对象集合:

获取对象集合的值:

存入 域对象:
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("hun", "hello");

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

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

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

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

本章结束!

原文地址:https://www.cnblogs.com/lzx2509254166/p/7671150.html