OGNL和ValueStack】的更多相关文章

利用OGNL获取ValueStack中:根栈和contextMap中的数据 原则:OGNL表达式如果以#开头,访问的contextMap中的数据 如果不以#开头,是访问的根栈中的对象的属性(List集合) 1.在动作类中 public String execute() {         // 操作ValueStack         // 从当前线程中获取ActionContext对象         ActionContext ac = ActionContext.getContext();…
一.OGNL 1.1 概述 1.2 OGNL 五大类功能 1.3 演示 二.ValueStack 2.1 概述 2.2 ValueStack结构 2.3 结论 2.3 一些问题 三.OGNL表达式常见使用符号 3.1 #号 3.2 %号 3.3 $号 一.OGNL 1.1 概述 OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言.比el表达式功能强大.Struts2将ognl表达式语言,集成当sturts2框架中,做为它的默认表达式语言…
OGNL简介 OGNL的全称是Object Graph Navigation Language,即对象导航图语言.它是一个开源项目,工作在视图层,其通过简单一致的表达式语言来读取合适者Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型的转换. OGNL简介 OGNL的计算都是围绕着OGNL上下文来进行的,OGNL上下文实际就是一个Map集合,由ognl.OgnlContext类来表示(其被封装到ActionContext中).其可以包含一个或多个上下文对象. 先面以一个例子…
一.OGNL 1)什么是OGNL? 解析:OGNL是Object Graph Navigation Language(对象图导航语言)它是强大的表达式语言. 2)用途:通过简单一致的表达式语法来读取和设置java对象的属性值.(调用对象方法,遍历整个对象的结构图,实现 字段类型转换等功能) 3)OGNL表达式的计算都是围绕OGNL上下文来进行的,OGNl上下文实际上就是一个Map对象,由ognl.OgnlContext类 (实现了java.util.Map接口)来表示.OGNL上下文可以包含一个…
在Struts2中,一个请求在终于到达Action的方法之前,Action对象本身会被压入ValueStack(实际上就是放到ValueStack的CompoundRoot中),所以Action对象是CompoundRoot中的一个元素.看以下的代码: public class UserAction { private String username; private Integer age; private boolean valid; //查看用户的具体信息 public String de…
1.值栈入门 下面我们建立struts2ognl项目来练习ognl的使用. 步骤一.搭建strust2的开发环境 步骤二.建立LoginAction,主要代码如下: package com.asm; public class LoginAction extends ActionSupport{ private User user; public String execute() throws Exception { return SUCCESS; } ...省略user的get/set方法 }…
什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式. Struts2框架使用OGNL作为默认的表达式语言. 为什么我们学习OGNL 在学习JSP的时候,我们已经学习过了EL表达式.EL表达式用起来也十分简单-我们在Struts2框架中也是可以使用EL表达式的-那么OGNL表达式好在哪里呢?? 支持对象方法调用,如xxx.doSomeSpecial() 支持类静态的方法调用和值访问,表达式的格式[例如:"@@floor…
要了解Struts2与OGNL表达式的关系,我们必须先搞清楚以下三个概念: 1.  ActionContext它是Action运行的上下文环境,Action的多项设置都存放在次,我们每一次Action调用都会创建一个ActionContext.通常情况下我们可以通过静态方法getContext()来获得Action上下文,进而进行其它操作,比如说可以得到request.session.application. 2.  ValueStack此对象主要是由OGNL框架实现,具体的实现类是com.op…
什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式. Struts2框架使用OGNL作为默认的表达式语言. 为什么我们学习OGNL 在学习JSP的时候,我们已经学习过了EL表达式.EL表达式用起来也十分简单...我们在Struts2框架中也是可以使用EL表达式的...那么OGNL表达式好在哪里呢?? 支持对象方法调用,如xxx.doSomeSpecial() 支持类静态的方法调用和值访问,表达式的格式[例如:"@@f…
一.OGNL概述 1.1 什么是OGNL OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换.如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁. 1.2 OGNL的作用 Struts2默认的表达式语言就是OGNL,它具有以下特点:…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 下面我们建立struts2ognl项目来练习ognl的使用. 步骤一.搭建strust2的开发环境 步骤二.建立LoginAction,主要代码如下: package com.asm; public class LoginAction extends ActionSupport{ private User user; public String execute() thro…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目.Struts2使用OGNL作为默认的表达式语言. 相对于EL表达式,它提供了平时我们需要的一些功能,如:支持对象方法调用,支持各类静态方法调用和值访问,支持操作集合对象.OGNL有一个上下文的概念,这个上下文件实质就是一个Map结构,它实现了java.u…
时间:2017-1-12 12:02 --OGNL1.OGNL表达式是什么    OGNL的全称是Object-Graph Navigation Language的缩写,中文名是对象图导航语言,它是一种功能强大的表达式语言.    比EL表达式功能强大.    Struts2将OGNL表达式语言集成到Struts2框架中,作为它的默认表达式语言.2.OGNL表达式的功能    1)支持对象方法调用,如:xxx.doSomeMethod()    2)支持类静态的方法调用和值访问.    3)访问…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 下面我们在com.asm.vo.User类中增加一个字段private Address addres;,并提供此字段的get/set方法,随后再在login.jsp中增加如下代码: 城  市:<input type="text" name="user.addres.city"><br> 然后再在loginSuc.jsp中…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html $用于i18n和struts配置文件 #取得ActionContext的值 %将原来的文本串解析为ognl,对于本来就是ognl的文本不起作用.形式:%{要解析的文本串}…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 首先在LoginAction中增加如下字段并提供相应的get/set方法: private List myList = new ArrayList(); private Set mySet = new HashSet(); private Map myMap = new HashMap(); 然后再在execute方法中初始化这些集合对象,代码如下: myList.add(…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 建立一个新的类:Student,在此省略代码. 然后在loginSuc.jsp中增加如下代码: 调用普通类中的构造方法  : <s:property value="new com.asm.vo.Student('jack','20','85.5')"/><br> 调用普通类中的构造方法并访问其字段 : <s:property valu…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 在loginSuc.jsp中增加如下代码: 调用Math类中的静态方法:<s:property value="@java.lang.Math@min(1,2)"/><br> 调用Math类中的静态方法_方式(2):<s:property value="@@min(1,2)"/><br> 调用Mat…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 首先在User中增加一个成员方法,代码如下: public String get(){ return "这是User中的get方法"; } 在LoginAction中也有类似的get方法,随后再在loginSuc.jsp中增加如下代码: 调用值栈对象中的普通方法(2):<s:property value="user.username.length(…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 我们知道,除了可以从值栈中获取信息,还可以从Stack Context中获取信息,只是要加上#,下面我们通过scope对象来演示.首先是在LoginAction中增加如下字段: Map myRequest; Map mySession; 随后再用前面提到的“在Action中获取Scope对象”的方式二来完成这些对象的初始化.即实现RequestAware和SessionAw…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html N语法[0]:<s:property value="[0]"/><br> N语法[1]:<s:property value="[1]"/><br> N语法[0].top:<s:property value="[0].top"/><br> N语法[1].t…
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 首先在LoginAction中增加如下字段并提供相应的get/set方法: private List studentList = new ArrayList(); 然后再在execute中为其初始化赋值,代码如下: studentList.add(new Student("jack", 20, 86.0f)); studentList.add(new Studen…
N语法[0]:<s:property value="[0]"/><br> N语法[1]:<s:property value="[1]"/><br> N语法[0].top:<s:property value="[0].top"/><br> N语法[1].top:<s:property value="[1].top"/><br> N语法…
在struts.xml 中使用ognl有两种方面的需求: 1. 在action执行时从struts.xml中读取param标签中的值,然后调用标签name属性相应的set方法对action中的变量赋值. 2. 在action执行完execute(或其他方法)后,struts.xml通过param变量读取action中或其他对象(例如request,session等)的属性值并执行一些计算. 在这两种情况先如果使用ognl表达式应该如何使用: 1. 在struts.xml 的action标签下可以…
1 OGNL概述 OGNL是对象图导航语言Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能.它使用相同的表达式去存取对象的属性.在前面的例子中,登录页面输入框的name用到的名字就是OGNL的表达式,比如:“账号:<input type="text" name=&qu…
一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出.       1,JSTL标签总结: a).JSTL标签有什么用?          JSTL是由JCP(Java Community Process)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签函数库.  Web程序员能够利用JSTL和EL来 开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序的阅读性.维护性和方便性. b).什么是JSTL标签?  …
者之间的关系如下图所示: relation ActionContext 一次Action调用都会创建一个ActionContext 调用:ActionContext context = ActionContext.getContext() ValueStack 由OGNL框架实现 可以把它简单的看作一个List Stack Object:放入stack中的对象,一般是action. Stack Context(map):stack上下文,它包含一些列对象,包括request/session/at…
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:值栈简介 值栈是对应每个请求对象的一套内存数据的封装,Struts2 会给每个请求创建一个新的值栈. 值栈能够线程安全地为每个请求提供公共的数据存取服务. 第二节:OGNL 引入 OGNL 是对象图导航语言Object-Graph Navigation Language 的缩写,它是一种功能强大的表达式语言. OGNL 访问ValueStack 数据 <s:proper…
1.OGNL表达式 object graph navigation language:对象图导航语言 存取对象属性:调用对象方法:字段类型转换等. <input type="text" name="user.username" /> 2.OGNL表达式的使用场景 2.1 在jsp中 s1.导入struts标签库: <%@ taglib prefix="s" uri="/struts-tags" %> s…
OGNL表达式(#号的用法) 用法1:访问OGNL上下文和Action上下文,#相当于ActionContext.getContext() 1.如果访问其他Context中的对象,由于他们不是根对象,所以在访问时,需要添加#前缀 2.  如果访问根对象(即ValueStack)中对象的属性,则可以省略#命名对象,直接访问该对象中的属性即可. 对象栈中的元素是有顺序的,底层是ArrayList封装容器.使用ognl搜索顺序自上而下 OGNL表达式%{}用法 %符号的用途是在标签的属性值被理解为字符…