【struts2】(二)值栈

2024-08-25 17:32
文章标签 struts2 值栈

本文主要是介绍【struts2】(二)值栈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(一)理解值栈

         struts2封装了很多东西,大大的简化了我们的代码。今天我们来看一下struts2是如何存取数据的。

        在使用过程中,我们一般在页面发送一个请求去访问action类,这是会自动创建一个值栈。在使用过程中,我们一般在Action类中查出数据,然后返回到页面上。struts中利用值栈来存储这些数据。

        在struts2中,把数据放到值栈中,然后再jsp中用ognl表达式取出。所有action共用一个堆栈,当需要保存在action中的数据时,首先从栈顶开始 搜索,若找到相同的属性名(与要获得的数据的属性名相同)时,即将值取出

(二)值栈介绍

简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心。在这里统一管理着数据,供Action、Result、Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写。
Struts2中关于值栈的另外一个很激动人心的特性就是:大多数情况下,你根本无需关心值栈,你不用管它在哪里,不用管它里面有什么,你只需要去获取自己需要的数据就可以了。也就是说,你可以隐式的使用值栈。
当然,如果编写自定义的Result或拦截器等较复杂功能的时候,还是需要显示访问值栈的,因此,还是需要你掌握值栈的知识。

(三)操作值栈

1.如何获取
要获取ActionContext有两个基本的方法,如果在不能获取到ActionInvocation的地方,可以直接使用ActionContext一个静态的getContext方法,就可以访问到当前的ActionContext了

ActionContext ctx = ActionContext.getContext();

2.获取过后,如何使用
 ActionContext主要的功能是用来存放数据的,典型的方法如下:


get(String key):根据key从ActionContext当前的存储空间里面获取相应的值
put(String key, Object value):把值存储在ActionContext的存储空间里面
Map getApplication():返回ServletContext中存储的值
Map getSession():返回HttpSession中存储的值
Map getContextMap():返回当前context存储的值
Map getParameters():返回HttpServletRequest对象里面存储的,客户端提交的参数
ValueStack getValueStack():获取OGNL的值栈
对于getXXX的方法,都有对应的setXXX方法,这里就不去赘述了,具体的请参看Struts2的API文档。

这篇关于【struts2】(二)值栈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106191

相关文章

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

struts2的时候

在使用struts2的时候,我们在jsp中经常写这样的代码片段:      学生姓名:            考试名称:            考试分数:         其中studentScores.student.stuName是对应后台action的熟悉,action是这样写的   public class StudentExamAc

Struts2常用标签总结--转载

Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。 Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于

Struts2和Spring整合中出现的问题

今天做了一个Struts2和Spring整合的练习,中间出了一点问题,贴出来供其它人参考。(该文章写于2010年) 代码写好后启动Tomcat服务器时报错: 严重: Exception starting filter struts2java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeExceptio

struts2接受中文乱码

问题描述: Action中有某一属性,并设有响应的getter/setter方法,前台提交中文数据时Action接收乱码。 解决方案: 1.在struts.xml中加入 <constant name="struts.i18n.encoding" value="UTF-8"></constant> 2.然后打开tomcat目录下conf文件夹下的server.xml文件

有关struts2

struts2的一点认识: (1)实现了MVC,将应用进行模块化管理,耦合性降低 (2)另外还实现了插件式的功效,比如拦截器的增加与减少,只用在配置文件里进行配置 (3)方便的访问sevlet里的重要属性 (4)方便的进行数据类型转换,当然也可进行自定义的转换 另外它还支持文件的上传与下载,对Ajax的支持。 上面的这些不知道是自己总结的还是在网上找的,在这里记录下。

struts2 struts.xml常用常量配置

<constant name="struts.i18n.encoding" value="UTF-8" /> 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 <constant name="struts.ui.theme" value="simple" /> 设置页面struts标签的样式     <consta

struts2 result type= redirect redirectAction chain dispatcher等类型

struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"     "http://struts.apache.org/dtds/struts-2.0.

struts2 xml validator 校验

分类: 【字段校验】  ---- field-validator   ---- 字段优先,我去校验谁(字段),我用谁(校验器)来校验 【非字段校验】  ---- validator  ---- 校验器优先,我用谁(校验器)来校验,我去校验谁(字段) ****** 这两种只是  表现形式  不同,底层是相同的,都是把错误信息放到fielder