0.
<%@ taglib prefix="s" uri="/struts-tags" %>
注:使用OGNL 表达式为复合类型的实例对象的属性赋值,那么在该类复合类型定义中,必须提供
该属性setter方法,以为Struts2 框架是通过该方法来完成赋值的,而不是直接赋值该属性;
Struts2 中常用的内置转换器:
String : 将int long double boolean String 类型的数组或java.util.Date类型转换为字符创;
boolean/Boolean 在字符串和布尔值之间进行转换
int/Integer float/Float longLong double/Double :在字符串和数值型的数据之间进行转换;
date : 在字符串和日期类型之间进行转换,对于日期类型,采用SHORT格式来处理输入和输出,使用当前请求相关联的Locale来确定日期格式;
collection : 如果不能确定对象的类型,择假定集合元素类型为String ,并创建一个新的ArrayList,存放所有的字符串;
基于OGNL 的类型的转换器:
Struts2 的转换器都要实现一个TypeConverter 接口(位于:ognl-2.7.3.jar),该接口定义了一个convertValue()方法,实现该接口类型的转换器实现类都要重写该
方法机型类型转换。
案例:编写一个自定义的类型转换器:
1、类型转换需求; 坐标:x,y
2、编写point类
3、编写pointAction 业务逻辑控制
String[] paramValues=(String[]) value; //注:当把一个字符串类型转换成一个复合类型时,value 参数为一个字符串数组类型,而不是字符串类型
4、编写自定义转换器
5、注册类型转换器 :PointAction 对应的属性文件为:PointAction-conversion.properties 文件内容:p=转换类的路径
6、编写视图资源文件
7、添加action配置
8、测试部署
注册自定义转换器:
局部类型转换器、全局类型转换器
* 注册局部类型转换器:
作用范围:action 范围,在action类文件相同的目录下创建一个命名规则为:ActionName-conversion.properties的属性文件
文件内容:prpertyName = 类型转换器(路径)
propertyName 指的就是action中进行类型转换的复合类型属性名称;
* 注册全局类型转换器:
即:凡是使用该复合类型数据的类型的转换器;
建立:xwork-conversion.properties 属性文件;该文件内容定义为:复合类型-对应的类型转换器
com.entity.Point = com.struts.typeconvert.PointConverter
com.entity.Point:指定了需要类型转换的复合类型;
该属性文件要保存在class路径的根目录;
集合属性类型转换器:
将数据类型写为集合的模式;
Struts2的类型转换
最新推荐文章于 2020-08-28 16:32:35 发布