Struts(九):值栈(OGNL)】的更多相关文章

2. 问题二 : 值栈的内部结构 ? * 值栈由两部分组成 > root -- Struts把动作和相关对象压入 ObjectStack 中--List > context -- Struts把各种各样的映射关系(一些 Map 类型的对象) 压入 ContextMap 中 * Struts会默认把下面这些映射压入ContextMap(context)中 * 注意:request代表的是Map集合的key值,value的值其实也是一个Map集合. > parameters: 该 Map 中…
3. 问题三 : 值栈对象的创建,ValueStack 和 ActionContext 是什么关系? * 值栈对象是请求时创建的 * ActionContext是绑定到当前的线程上(一个Action访问下来是一个线程,action使用的是同一个上下文,所以ActionContext是绑定到当前集合上的),那么在每个拦截器或者Action中获取到的ActionContext是同一个. * ActionContext中存在一个Map集合,该Map集合和ValueStack的context是同一个地址…
7. 问题七:为什么EL也能访问值栈中的数据? * StrutsPreparedAndExecuteFilter的doFilter代码中 request = prepare.wrapRequest(request); > 对Request对象进行了包装 ,StrutsRequestWrapper > 增强了request的 getAttribute Object attribute = super.getAttribute(s); if (attribute == null) { attrib…
ValueStack里有map(request, session, attr, parameters)和对象栈. Map调用的方法: ActionContext.getContext().put(k,v)/ get(k) 对象栈的调用方法: ActionContext.getContext.getValueStack().push(obj)/pop(); OGNL格式: struts.xml, OGNL的格式为: ${ognl} jsp里 OGNL的格式为: %{ognl} 语法: user=f…
1.1.1    OGNL概述: Object Graphic Navigation Language(对象图导航语言)的缩写 * EL     :OGNL比EL功能强大很多倍. 它是一个开源项目. Struts2框架使用OGNL作为默认的表达式语言. OGNL相对其它表达式语言具有下面几大优势: 1.支持对象方法调用,如xxx.doSomeSpecial(): 2.支持类静态的方法调用和值访问,表达式的格式: @[类全名(包括包路径)]@[方法名 |  值名],例如: @java.lang.S…
OGNL表示式使用 和 值栈 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts2框架使用OGNL作为默认的表达式语言. * xwork 提供 OGNL表达式 * ognl-3.0.5.jar OGNL 是一种比EL 强大很多倍的语言 OGNL 提供五大类功能 1.支持对象方法调用,如xxx.doSomeSpecial(): 2.支持类静态的方法调用和值访问 3.访问OGNL上下文(OGNL context)和…
引言 在我们开发过程中,往往会使用一个对像传递到一个具体的action中,之后到跳转页面中访问对应对象的具体的参数. 比如:我们搭建一个struts2项目: 回顾下如何搭建strut2: 1.下载的struts2开发包(struts-2.3.31-all.zip): 2.解压struts-2.3.31-all.zip,并把\apps\struts2-blank.war解压: 3.取出\struts2-blank\WEB-INF\lib下的所有jar包到Struts_01\WebContent\W…
用户每次访问struts的action,都会创建一个Action对象.值栈对象.ActionContext对象:然后把Action对象放入值栈中: 最后再把值栈对象放入request中,传入jsp页面(key: struts.valueStack). 值栈的内存结构分为: map栈: request session application list栈: action及全局对象 我们只需要通过ActionContext对象就可以访问struts的其他的关键对象. public class Ognl…
struts 值栈  通过get set方法 方便的获取,设置属性值      比如从jsp页面传来的參数...从Action设置jsp所要回显的内容 注意EL表达式,struts2对request进行了封装,所以它的查找顺序 多了一个findvalue() 如上图 再看以下的代码: public class UserAction { private String username; //查看用户的具体信息 public String detail(){ username = "张三"…
一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的时候对实现过程进行了封装,用起来比较方便. 3.实现过程 (1)在Action文件中定义好相关属性,属性名字和表单中的name属性值要相同. (2)在Action同目录下新建一个XML文件,文件命名规则如下 * 如果是针对整个Action文件的,则文件名为:ActionClassName-valid…