初学者易上手的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 03数据封装

初学者易上手的SSH-struts2 05拦截器与自定义拦截器

初学者易上手的SSH-spring 01控制反转(IOC)

初学者友好!盘点 GitHub 上 10 个有趣且易上手的 AI 开源项目

Struts2复习之值栈与OGNL

StringBoot 易上手的java框架