1. 自定义类型转换器:Struts2提供一个基类:org.apache.struts2.util.StrutsTypeConverter。该类是抽象类,须实现convertFormString()和convertToString()方法。
2. struts2提供2肿方式配置转换器:
a) 应用于全局范围的类型转换器:须在classpath的跟路径下创建一个xwork-conversion.properties的属性文件,内容为:转换类全名=类型转换器类全名。
b) 应用于特定类的类型转换器:须在特定类的相同目录下创建一个名为ClassName-conversion.properties的属性文件(ClassName为实际的类名),内容为:特定类的属性名=类型转换器类全名。
访问静态方法属性:@类全名@方法名/属性名 (须在struts2.xml文件中配置<constant name=”struts.ognl.allowStaticMethodAccess” value=”true” />)。
访问普通构造方法:new 类全名()。
访问List中元素某个属性的集合:集合名.{属性名}。在ognl中大括号可以代表一个集合。
投影(过滤):
<s:property value="users.{?#this.age==1}"/> 得到age等于1的集合
<s:property value="users.{^#this.age>1}"/>得到age大于1的集合第一个对象
<s:property value="users.{$#this.age>1"/>得到age大于1的集合最后的对象
<s:property value="users.{$#this.age>1} == null"/>判断age大于1的集合是否为null。
分享到:
相关推荐
### Struts2的类型转换与OGNL表达式语言 #### 一、Struts2的类型...综上所述,Struts2框架中的类型转换和OGNL表达式语言都是极为重要的特性。正确理解和运用这些特性,可以帮助开发者构建更加健壮和灵活的应用程序。
本教程将深入探讨Struts2的核心概念、JQuery的使用、类型转换以及OGNL表达式语言。 首先,让我们来看看Struts2的基础知识。Struts2是基于Apache的开源项目,它是对早期Struts框架的升级,引入了拦截器模式,提供了...
同时,也能让我们理解Struts2框架如何将OGNL与动作类、模型对象和视图组件紧密集成。 通过深入学习OGNL的源码,开发者可以更好地定制和优化Struts2应用,提升性能,增强安全性,并能解决遇到的特定问题。这是一项...
Struts2的内建类型转换涵盖了大部分常见类型,包括但不限于String、boolean/Boolean、char/Character、整数类型(int/Integer、float/Float、long/Long、double/Double)、日期(使用当前时区的SHORT格式)以及数组...
当STRUTS2框架在处理这些值时,如果没有进行充分的安全检查和类型转换,就可能成为攻击的入口。 漏洞的具体表现是,当用户在输入框中输入特定的OGNL表达式,如`<’+#application+’>`,在某些情况下,STRUTS2框架将...
其中,OGNL(Object-Graph Navigation Language)是Struts2中的一个关键组件,它是一种强大的表达式语言,用于在运行时访问和操作对象的属性。这个压缩包包含的是OGNL的2版本的源代码,这对于理解Struts2框架的工作...
在实际应用中,了解Struts2的类型转换机制有助于我们更好地控制数据的流动,提高程序的健壮性和用户体验。例如,我们可以通过自定义类型转换器来验证和格式化用户输入,确保数据的准确性和一致性。同时,合理地处理...
在掌握Struts2和OGNL的基础上,开发者可以进一步学习Struts2的其他组件和特性,如标签库、异常处理、国际化支持、拦截器机制、输入校验、文件上传和下载等,这些都是构建复杂Web应用不可或缺的组件和功能。
深入研究这些源代码,你可以了解到Struts2和XWork如何协同工作,OGNL是如何嵌入到这两个框架中的,以及它们实现的一些核心功能的内部机制。例如,你可以查看Action的实现、拦截器的定义、OGNL表达式的解析过程等。...
XWork是Struts2的核心组件,负责处理Action的执行,而OGNL(Object-Graph Navigation Language)则是Struts2中的表达式语言,用于数据绑定和访问对象属性。这个压缩包包含了这三个关键组件的源代码,对于开发者来说,...
在处理用户输入时,Struts2框架需要将请求参数转换为对应的Java对象属性,这个过程就涉及到类型转换。然而,当用户输入的数据格式不正确时,就会出现类型转换错误,例如在尝试将字符串转换为日期时。本篇文章将深入...
XWork是Struts2的核心组件,负责处理动作和业务逻辑,而OGNL(Object-Graph Navigation Language)则是Struts2中的表达式语言,用于在模型、视图和控制器之间传递数据。这个压缩包提供了这三部分的Java文档(Javadoc...
Struts2的自定义类型转换可以分为两大类:局部类型转换和全局类型转换。 - **局部类型转换**:针对特定Action或实体类的类型转换,适用于特定场景下的数据处理。进一步分为: - 普通实体bean的自定义类型转换:...
Ognl(Object-Graph Navigation Language)是Struts2中的一个重要组件,用于在视图层和模型层之间传递数据。本文将详细介绍Struts2、Webwork以及Ognl的相关知识点,并提供入门指导。 **Struts2框架** Struts2是在...
**OGNL (Object Graph Navigation Language)** 是一种强大的表达式语言,允许开发者通过简单的语法来读取和设置 Java 对象的属性值,调用对象的方法,遍历整个对象的结构图,并实现字段类型转换等功能。 OGNL 的...
以下是一些关于Struts 2和OGNL的关键知识点: 1. **OGNL表达式**:OGNL表达式可以访问对象的属性,包括方法调用、索引访问、集合和映射操作。例如,`person.name`可以获取`person`对象的`name`属性,而`list[0]`...
总的来说,Struts2对OGNL的封装主要体现在TypeConverter上,这是一个强大的工具,允许开发者自定义数据类型转换,以适应各种复杂的业务场景。理解并熟练使用TypeConverter能够极大地提升Struts2应用的灵活性和可维护...
2. **类型安全**:OGNL在解析表达式时,会自动处理类型转换,避免了运行时错误。 3. **上下文感知**:OGNL能够根据当前上下文查找变量,例如在Struts2中,ActionContext可以作为默认上下文。 4. **动态性**:OGNL...