Struts2笔记_值栈】的更多相关文章

A.值栈概述 值栈(ValueStack),通俗的来说就是Struts2里面用来管理和存储数据的东西.struts2项目部署运行后,底层会创建一个action实例,同时也会在内存上划分一块区域,这个区域就是值栈,该值栈对象会贯穿整个Action生命周期,用来存储这个过程中的数据. B.值栈结构 首先,我们一起去看看struts2中值栈在哪里.找到xwork-core--->com.opensymphony.xwork2.util------>ValueStack 这个ValueStack是接口…
Struts2_day03 上节内容 今天内容 OGNL概述 OGNL入门案例 什么是值栈 获取值栈对象 值栈内部结构 向值栈放数据 向值栈放对象 向值栈放list集合 从值栈获取数据 获取字符串 获取对象 获取list集合 其他操作 EL表达式获取值栈数据(为什么) OGNL的#.%使用 #使用 %使用 案例-列表功能改造(值栈) Struts2_day03 上节内容 1 在action获取表单提交数据 (1)使用ActionContext类获取 (2)使用ServletActionConte…
struts2中OGNL和 ValueStack(一) 收藏 学习的时候,总分不清楚在struts2中页面的传值和取值是怎么来完成的,所以从网上搜了很多资料,现在把这些资料总结写,留着以后参考..看完资料后也大概明白了... 先分清楚下ActionContext .ValueStack .Stack Context三者 ActionContext 一次Action调用都会创建一个ActionContext 调用:ActionContext context = ActionContext.getC…
通过对struts2的一段时间的接触,将自己对OGNL的核心值栈说说,值栈:简单的说,就是存放action的堆栈,当我们提交一个请求 道服务器端 action时,就有个堆栈,如果action在服务器端进行跳转,所有action共用一个堆栈,当需要保存在action中的数据时,首先从栈顶开始 搜索,若找到相同的属性名(与要获得的数据的属性名相同)时,即将值取出,但这种情况可能出现找到的值不是我们想要的值,那么解决此问题需要用TOP语法 和N语法来进行解决. 当在客服端进行跳转时,当有请求提交到服务…
1.1.1    OGNL概述: Object Graphic Navigation Language(对象图导航语言)的缩写 * EL     :OGNL比EL功能强大很多倍. 它是一个开源项目. Struts2框架使用OGNL作为默认的表达式语言. OGNL相对其它表达式语言具有下面几大优势: 1.支持对象方法调用,如xxx.doSomeSpecial(): 2.支持类静态的方法调用和值访问,表达式的格式: @[类全名(包括包路径)]@[方法名 |  值名],例如: @java.lang.S…
Struts2一个重要点就是值栈. ValueStack,是用来存储一些在各个action,或者说是通过s标签.el表达式等给前台Jsp等页面展示的东西. ValueStack是一个接口,其内部接口非常简单: /* * Copyright 2002-2007,2009 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may…
一 什么是值栈 值栈: struts2中提供的一种类似于域对象的工具, 用于struts2中的存值和取值. 每次访问Action的时候, 都会创建一个action对象, 而每个action对象中都存在一个值栈对象 值栈对象的声明周期与Action的生命周期(第一次访问action的时候被创建, 当action中方法返回值时被销毁)一致. 二 Action中值栈对象的获取方法 每个action只对应一个值栈对象. 值栈对象可以通过ActionContext对象中的方法获取. ActionConte…
1. OGNL 表达式 1.1 概述 OGNL(Object Graphic Navigation Language),即对象图导航语言; 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象; 通过OGNL表达式,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图等功能; 1.2 特点 OGNL 是一种比 EL 表达式强大很多倍的语言; xwork 提供 OGNL 表达式; ognl-3.0.5包; Struts2 框架使用 OGNL 作为默认的表达式语言;…
ValueStack, 即值栈对象. 值栈对象: 是整个struts数据存储的核心,或者叫中转站. 用户每次访问struts的action,都会创建一个Action对象.值栈对象.ActionContext对象:  然后把Action对象放入值栈中: 最后再把值栈对象放入request中,传入jsp页面. (key: struts.valueStack):     开发者只需要通过ActionContext对象就可以访问struts的其他的关键对象. (ActionContext是给开发者用的,…
一.值栈简介: 二.OGNL引入: com.cy.action.HelloAction.java: package com.cy.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.util.ValueStack; public class He…
A.拦截器是什么 --- Interceptor:拦截器,起到拦截Action的作用. ---Filter:过滤器,过滤从客户端向服务器发送的请求. ---Interceptor:拦截器,拦截是客户端对Action的访问.更细粒度化的拦截.(拦截Action中的具体的方法).Struts2框架核心的功能都是依赖拦截器实现. B.Struts2的执行流程       客户端向服务器发送一个Action的请求,执行核心过滤器(doFilter)方法.在这个方法中,调用executeAction()方…
1.index.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Index</title> </head> <body&…
[注意]:如果知道自己写的代码会造成编译器反复对一个值类型进行装箱,请改成用手动方式对值类型进行装箱. [好处]:代码会变得更小.更快. [例子]: using System; public sealed class Program { public static void Main() { //创建一个未装箱的值类型变量 Int32 v = ; //编译代码时,v会被装箱三次,浪费时间和内存 Console.WriteLine("{0}, {1}, {2}", v, v, v); /…
获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.getContext().put("req", "req_value"); //在session域中放入属性ses ActionContext.getContext().getSession().put("ses", "ses_value");…
前段日子对ognl表达式不是很理解,看了几本书上关于ognl表达式的描述后还是感觉很难,前几天学习了struts2中值栈的内容,现在感觉ognl表达式其实很容易. struts2中利用值栈来存储数据,在struts2中,把数据存在值栈中,然后在jsp页面用ognl表达式取出. 在struts2中的action有三种方法获取值栈 ValueStack valueStack=ActionContext.getContext().getValueStack(); ValueStack valueSta…
1 值栈是什么? 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心. Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action.Result.Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写.Struts2中关于值栈的另外一个很激动人心的特性就是:大多数情况下,你根本无需关心值栈,你不用管它在哪里,不用管它里面有什么,你只需要去获取自己需要的数据就可以了.也就是说,你可以隐式的使用值栈.当然,…
大致内容: ognl概述 ognl入门 值栈 一.OGNL概述 OGNL,全称为Object-Graph Navigation Language,对象图导航语言 它是一个功能强大的表达式语言,用来获取和设置Java对象的属性, 它旨在提供一个更高的更抽象的层次来对Java对象图进行导航. struts2自带的表达式语言就是OGNL >支持对象方法调用 >支持类静态方法调用和值访问 >[主要用法]在struts2中操作值栈 和struts2标签一起使用来操作值栈 OGNL不是struts2…
Struts2自定义标签的流程概念: (1)需要两个类:标签类(继承相应的tag类),基本类(继承Component).标签类专门负责从客户端取得用户输入的一些属性,这个普通的jsp自定义标签一样,取出来以后,需要把取出的属性值赋给基本类.从而可以看到基本类里面的属性也跟tag里面差不多. (2)tag类里面,需要定义你客户端传来的属性.私有化.并相应的set get.  必须的两个方法是public Component getBean(ValueStack stack,HttpServletR…
一.前言 很多事儿啊,就是“成也萧何败也萧何”,细想一些事儿心中有感,当然,感慨和本文毛关系都没有~想起之前有篇Struts2中值栈的博客还未完工,就着心中的波澜,狂咽一把~ 二.正文 博文基于:struts-core-2.5.2.jar,ognl-3.1.10.jar 和值栈的邂逅还是大学学习Struts2的时候,老师当时在台上津津有味,我却在底下晕头转向~很长时间都没有去理清这个值栈到底是什么,实现原理是什么,偶然的际遇,让我又遇到了它,所以我决定以我现有的知识储备再次去追根溯源~ 那从概念…
Struts2 中, HTML 表单将被直接映射到一个 POJO,通过params拦截器,类中定义对应属性,及对应set方法即可. Struts2 中,任何一个POJO都可以是一个action类. Struts2 会为每一个 HTTP 请求创建一个新的 Action 类的实例,即 Action 不是单例的,是线程安全的. :8080/contextPath 必须有一个不带参的构造器,struts.xml中通过全类名反射创建类实例 在jsp页面中,request.setCharacterEncod…
7.1  值栈 7.1.1  值栈是什么 简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心. Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action.Result.Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写. Struts2中关于值栈的另外一个很激动人心的特性就是:大多数情况下,你根本无需关心值栈,你不用管它在哪里,不用管它里面有什么,你只需要去获取自己需要的数据就可以了.也就是说,你…
http://blog.csdn.net/yerenyuan_pku/article/details/67709693 OGNL的概述 什么是OGNL 据度娘所说: OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化功能.它使用相同的表达式去存取对象的属性. OGNL的全称是对象图导航语言(Object-Graph Navigat…
值栈 值栈(ValueStack)就是 OGNL 表达式存取数据的地方.在一个值栈中,封装了一次请求所需要的所有数据. 在使用 Struts2 的项目中,Struts2 会为每个请求创建一个新的值栈,也就是说,值栈和请求是一一对应的关系,这种一一对应的关系使值栈能够线程安全地为每个请求提供公共的数据存取服务. 值栈的作用 值栈可以作为一个数据中转站在前台与后台之间传递数据,最常见的就是将 Struts2 的标签与 OGNL 表达式结合使用. 值栈实际上是一个接口,在 Struts2 中利用 OG…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的时候对实现过程进行了封装,用起来比较方便. 3.实现过程 (1)在Action文件中定义好相关属性,属性名字和表单中的name属性值要相同. (2)在Action同目录下新建一个XML文件,文件命名规则如下 * 如果是针对整个Action文件的,则文件名为:ActionClassName-valid…
值栈是struts2内部一片很重要的区域,我在初学的时候,发现对于值栈这个数据结构的理解不是很深刻.例如OGNLContext是什么,ActionContext和值栈有什么关系.为什么ActionContext可以获得值栈和contextMap等等,这些都是在我初学的时候的难以理解的概念性问题.我在网上查找了很多资料,发现网上对于这一概念的解释很多都是复制粘贴或者解释的不是很清楚,因此写一篇博文帮助和我一样对于struts2值栈内部的数据结构的引用不清楚的童鞋!首先看看值栈的数据结构: 可以看出…
Struts2在初始化Action的时候会先向值栈中压入一个action对象,里面包含了各个属性,这些属性是怎么被压进去的?或者说是根据什么来压入的?直到2016年5月5日才理解,原来是在初始化action的时候,根据antion中定义的getter方法来向值栈中压属性的,而单纯的在action中定义的属性,但没有定义getter方法的属性并不会被压入到值栈中,例如,有一个Action叫做UserAction: class UserAction{ private String name; pri…
1.ValueStack 和 ActionContext 的关系与区别: -- 相同点:它们都是在一次HTTP请求的范围内使用的,它们的生命周期都是一次请求 -- 不同点:ValueStack 分为对象栈(Object Stack) 和 Map栈(Map Context),而ActionContext就是一个映射的Map结构 --  联系 :  ValueStack.getContext()方法得到的Map 其实就是ActionContext 的Map.在查看Struts2的源代码可知(Stru…
1. 数据传输背后机制:ValueStack(值栈) 在这一切的背后,是因为有了ValueStack(值栈)! 2. ValueStack基础:OGNL 要了解ValueStack,必须先理解OGNL(Object Graphic Navigatino Language)! OGNL是Struts2中使用的一种表达式语言,它可以: ①用于JSP的标签库中,以便能够方便的访问各种对象的属性: ②用于界面将参数传递到Action(并进行类型转换)中: ③用于struts2的配置文件中! 所以,非常有…
ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContext ValueStack与ActionContext的联系和区别: 如何获得ActionContext: 如何向ActionContext中存入值: 如何从ActionContext中读取值: HttpServletRequest类或request的Map 使用HttpServletRequest类…