`

Struts2 part 8:OGNL

 
阅读更多

 

 ValueStack内部结构


 ValueStack内部数据结构


 

 

一、获取ValueStatck的两种方式

1、通过SerlvetActionContext获得

ValueStack valueStack = (ValueStack) ServletActionContext.getRequest().getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);

SerlvetActionContext中有个常量

public static final String STRUTS_VALUESTACK_KEY = "struts.valueStack";

由此可见ValueStack是保存在reqeust中的,所以ValueStack的生命周期就是reqeust的生命周期 

2、通过ActionContext获得

ValueStack valueStack = ActionContext.getContext().getValueStack();

 

二、向ValueStack中存取数据

向ValueStack中设置数据

public class OGNLAction1 extends ActionSupport {
	@Override
	public String execute() throws Exception {
		
//		ValueStack valueStack = (ValueStack) ServletActionContext.getRequest().getAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY);
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		
		//创建map参数,将数据保存在map中,数据保存在root的索引1位置,
		valueStack.set("key", "value");
		//将数据保存在root的索引0位置
		valueStack.push("Hello ValueStatck");
		
		ActionContext context = ActionContext.getContext();
		context.put("reqscope", "requestinfo");
		return SUCCESS;
	}
}

 

在JSP中想ValueStack获取数据

<%@ taglib uri="/struts-tags" prefix="s"%>
	<a href="${pageContext.request.contextPath }/demo03/ognl1.action?name=Struts2">访问action</a>
	<s:debug></s:debug>
	<h1>访问root中的第一元素</h1>
	<s:property value="[0].top" />
	<h1>访问key,通过key值在root中自上而下查找</h1>
	<s:property value="key" />
	<br />
	<s:property value="[1].top" />
	<br />
	<s:property value="[1].top.key" />
	<h1>访问request中的数据</h1>
	<s:property value="#request.reqscope" />
	<h1>访问请求参数</h1>
	<s:property value="#parameters.name" />

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 287.1 KB
  • 大小: 132.2 KB
分享到:
评论

相关推荐

    Struts2 part6:数据校验

    这篇博客“Struts2 part6:数据校验”可能详细介绍了如何在Struts2中实现对用户提交的数据进行验证。 Struts2的数据校验分为两个主要部分:客户端校验和服务器端校验。客户端校验通常使用JavaScript或者HTML5的表单...

    struts2 apps part2

    在"struts2 apps part2"这个主题中,我们将会深入探讨Struts2框架的更多特性和应用,以及如何利用它来开发更复杂的web应用程序。 1. **Struts2框架概述**: Struts2是基于MVC(Model-View-Controller)设计模式的...

    Struts2的视频学习代码

    "Struts2-part01"可能包含的是该系列学习的第一部分内容,可能涵盖了Struts2的基础概念、环境搭建、Action的创建和执行、OGNL的基本使用等内容。通过学习这部分代码,开发者能够初步掌握Struts2的基本操作和工作原理...

    Struts2视频学习代码part2

    这个"Struts2视频学习代码part2"着重讲解了Struts2的核心组件和实际应用,包括Action、Results以及OGNL(Object-Graph Navigation Language)表达式,并提供了一个具体的BBS论坛的应用示例。 1. **Action**:在...

    struts2.part2

    在“轻量级应用Java EE企业实战”系列中,"struts2.part2"这部分可能涉及了更深入的Struts2使用技巧,如自定义拦截器的实现、Action的分层设计、动态结果集的配置以及与Ajax的集成等内容。学习这部分内容将有助于...

    struts2的pdf教程

    Struts2是一个强大的Java web应用程序框架,它基于MVC...文件列表中的"struts2[1][1].part1.rar"、"struts2[1][1].part2.rar"和"struts2.rar"可能是教程的分卷压缩包,需要全部下载并解压后才能查看完整的PDF教程。

    struts2.part3

    4. **OGNL(Object-Graph Navigation Language)**:作为Struts2的数据绑定语言,OGNL用于在Action对象和JSP视图之间传递数据。它允许开发者直接访问对象的属性,甚至可以执行复杂的表达式。 5. **插件(Plugins)*...

    Struts2.part4

    5. **OGNL表达式语言**:Struts2默认使用Object-Graph Navigation Language (OGNL)来处理对象的属性访问和表达式计算。这使得视图层能够方便地获取和设置模型数据。 6. **插件体系**:Struts2有一个丰富的插件库,...

    struts-2.3.8-all-part2

    8. ** strut2-dojo-plugin**:Struts2与Dojo JavaScript库的集成,提供丰富的客户端控件和动画效果。 通过学习和实践这个"struts-2.3.8-all-part2"压缩包中的内容,开发者可以深入了解Struts2框架,提升Web应用开发...

    struts2和struts1 API及使用指南 chm

    Struts2还引入了OGNL(Object-Graph Navigation Language)作为表达式语言,增强了视图层的数据绑定能力。 Struts2与Struts1在API上的主要差异体现在以下几个方面: 1. **Action接口**:Struts1中的Action类需要...

    struts2学习笔记.doc

    - **上传原理**:Struts2利用MultipartResolver实现文件上传功能。 - **配置与实现**: - 在`struts.xml`中配置上传相关的参数。 - 实现Action类中文件上传的具体逻辑。 **5.2 文件下载** - **下载原理**:Struts...

    struts-2.3.8-all-part1

    Struts 2是一个依赖于其他许多库的框架,如OGNL(Object-Graph Navigation Language)用于表达式语言,Freemarker或JSP作为视图层模板技术,以及Servlet API等。理解这些依赖关系有助于你在自己的项目中正确配置和...

    STRUTS-2.3.1.2-PART1

    在压缩包的"lib"目录下,你会发现所有必需的依赖库,这些都是Struts 2运行所依赖的第三方组件,如OGNL(Object-Graph Navigation Language)用于表达式语言,Freemarker或Velocity用于视图渲染,还有其他的一些日志...

    单兴华王者归来之Struts2.1权威指南--基于WebWork核心的MVC开发.part14.rar

    5. **表达式语言(EL)**:Struts2支持使用OGNL(Object-Graph Navigation Language)作为其默认的表达式语言,允许在视图层方便地访问模型数据。 6. **插件系统**:Struts2拥有丰富的插件库,如Freemarker和Velocity...

    传智播客struts2.1视频教程—源代码

    5. **OGNL(Object-Graph Navigation Language)**:介绍OGNL表达式语言,它是Struts2中用于数据绑定和表达式计算的强大工具。 6. **拦截器**:深入解析拦截器的工作原理,以及如何自定义拦截器实现特定的功能,如...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    struts 2.3.4.1 最新英文版API

    org.apache.struts2.dispatcher Classes for action dispatching in Struts (the Controller part of MVC). org.apache.struts2.dispatcher.mapper org.apache.struts2.dispatcher.multipart Classes to help ...

    Struts_2.0从入门到精通

    OGNL(Object-Graph Navigation Language)是Struts2.0中的一种强大且灵活的表达式语言,它用于访问和操作对象图。通过OGNL,开发者可以方便地获取对象属性,执行方法调用,以及进行条件判断等,大大增强了页面脚本...

Global site tag (gtag.js) - Google Analytics