初学者易上手的SSH-struts2 04值栈与ognl表达式
Posted 柯一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学者易上手的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标签我就不过多介绍了。附图一张
本章结束!
以上是关于初学者易上手的SSH-struts2 04值栈与ognl表达式的主要内容,如果未能解决你的问题,请参考以下文章
初学者易上手的SSH-struts2 05拦截器与自定义拦截器