`
1028826685
  • 浏览: 938595 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

自定义全局类型转换器

阅读更多
Struts2中自定义转换器类型有两中:

第一种:局部Action自定义类型转换器

         public class TypeConvert extends DefaultTypeConverter{

/*
* 第一步:实现自定义类型转换器
* 第二步:注册自定义类型转换器(<1、局部(在Action内)<2、全局(在整个应用程序))
* 第二步中注册的内容是属性名称=类型转换器的全类名
* 其中属性名是于这个Action对应需要类型转换的属性名字
* 值是这个这个类型转换器的完整类名
*/
/*
* 测试路径
* <1、http://localhost:8080/Structs2/test/helloworld?date=2012-05-01
* <2、http://localhost:8080/Structs2/test/helloworld?date=20120501
*
*/
/*
* context:表示
* value:什么类型进行转换
* toType:表示转换成的类型
*/
@Override
public Object convertValue(Map<String, Object> context, Object value,Class toType) {

SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd");
//这里从value传过来的值是一个数组
if(toType==Date.class)
{
String[] params=(String[])value;
try {

return format.parse(params[0]);

} catch (ParseException e) {

e.printStackTrace();
}

}else if(toType==String.class)
{
return format.format((Date)value);
}
return null;
}





}
注册自定义类型转换器:
将上面的类型转换器注册为局部类型转换器:
在Action类所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是Action的类名,后面的-conversion.properties是固定写法,对于本例而言,文件的名称应为HelloWorldAction-conversion.properties 。在properties文件中的内容为:
属性名称=类型转换器的全类名
对于本例而言, HelloWorldAction-conversion.properties文件中的内容为:
createtime= cn.itcast.conversion.DateConverter

例如:我的自定义转换器包和类名:com.liyong.typeConvert.TypeConvert
Action所在包和类:com.liyong.action HelloWorldAction.java

首先在com.liyong.action 包中新建名为
   HelloWorldAction-conversion.properties的文件
其内容:date= com.liyong.typeConvert.TypeConvert
其中date是属性名
com.liyong.typeConvert.TypeConvert是自定义转换器

测试:
<1、http://localhost:8080/Structs2/test/helloworld?date=2012-05-01
<2、http://localhost:8080/Structs2/test/helloworld?date=20120501

第二种:全局

这里只有注册不同其它的同上
在WEB-INF/classes下放置xwork-conversion.properties文件 。在properties文件中的内容为:
待转换的类型=类型转换器的全类名
对于本例而言, xwork-conversion.properties文件中的内容为:
注意:这个文件也可以放在src路径下因为被变换后或到clsses路径去
java.util.Date= cn.itcast.conversion.DateConverter

例如:java.util.Date=com.liyong.typeConvert.TypeConvert

分享到:
评论

相关推荐

    自定义类型转换器

    ### 自定义类型转换器 #### 一、概述 在Java编程中,经常需要处理不同数据类型之间的转换。例如,从用户界面获取的数据通常是字符串形式,而程序内部可能需要将其转换为日期、数字等其他类型。Struts2框架提供了一...

    struts2 全局类型转换器.rar

    这个压缩包“struts2 全局类型转换器.rar”可能包含了一个示例或教程,教你如何在Struts2中实现全局类型转换器,以统一处理不同类型的字段转换。在Struts2中,类型转换器扮演着重要的角色,它允许你将用户输入的数据...

    传智播客struts2.1源代码_自定义类型转换器

    当默认的类型转换器无法满足特定需求时,开发者可以编写自定义类型转换器。自定义类型转换器需要实现`org.apache.struts2.util.TypeConverter`接口,或者继承`org.apache.struts2.convention.converters....

    struts2自定义类型转换器

    这就是"struts2自定义类型转换器"的主题。 首先,理解Struts2的类型转换机制。当Struts2接收到HTTP请求时,它会尝试将请求参数与Action类的属性进行绑定。这个过程涉及到了类型转换,Struts2内置了一套转换器机制,...

    struts2自定义数据类型转换练习

    如果内置的转换器无法完成转换,例如,字符串转换为自定义类型的对象,我们就需要自定义一个类型转换器。 创建自定义数据类型转换器需要实现`org.apache.struts2.util.TypeConverter`接口。这个接口包含了一个核心...

    Struts2自定义类型转换

    虽然框架已经提供了对基本类型和常见对象(如`Date`)的转换支持,但对于复杂的自定义类,就需要开发者自定义类型转换器了。Struts2提供了两种实现自定义类型转换器的途径: 1. **继承`ognl.DefaultTypeConverter`*...

    struts2全局转换的问题

    在Struts2中,全局转换器(Global Converters)是一个关键特性,它允许开发者为整个应用定义统一的数据类型转换规则,而不是在每个Action类中单独配置。这个特性大大提高了代码的复用性和维护性。 标题“Struts2...

    自定义struts时间转换器

    在Struts中,转换器(Converter)扮演着重要的角色,主要负责在表单数据和模型对象之间进行数据类型的转换。自定义Struts时间转换器可以帮助我们更灵活地处理时间格式,满足不同场景下的时间显示和存储需求。 在...

    Struts2的自动类型转换及自定义类型转换[文].pdf

    2. 全局类型转换器:适用于所有Action的特定类型的属性。创建名为`xwork-conversion.properties`的文件,放在`WEB-INF/classes/`目录下,文件内容列出复合类型和对应的类型转换器映射,如`java.util.Date=...

    struts2 类型转换器

    在描述中提到的博客链接(由于实际无法访问,以下内容基于Struts2类型转换器的通用知识)通常会详细解释如何创建和注册自定义类型转换器。开发者可以实现`org.apache.struts2.util.TypeConverter`接口或继承`org....

    实验4 Struts2的类型转换与OGNL表达式语言.doc

    #### 二、局部类型转换器与全局类型转换器的区别 **2.1 局部类型转换器** 局部类型转换器仅对某个特定的Action或模型类有效。这意味着它只在特定的场景下起作用。局部类型转换器通常通过配置文件或者注解的方式指定...

    struts2数据类型转换器

    但是,有时候我们可能需要自定义转换器以满足特定需求,例如处理自定义类型的属性或者对转换过程进行特殊控制。这时,我们可以创建一个新的类实现`TypeConverter`接口,然后通过在Action类或者全局配置中注册这个...

    Struts2类型转换(一)----常规类型,自定义类型,错误处理

    例如,我们可以通过自定义类型转换器来验证和格式化用户输入,确保数据的准确性和一致性。同时,合理地处理转换错误能帮助开发者快速定位问题,减少用户界面的不友好提示。 总之,Struts2的类型转换是其强大功能的...

    struts2如何配置与自定义类型转换

    例如,要为`com.test.beans.Point`类创建全局转换器,你可以这样写: ```properties com.test.beans.Point=com.test.convert.PointConverter ``` 此时,无论在哪一个Action中使用到`Point`类,都会使用到你定义的`...

    Struts2之类型转换器的使用案例struts002

    本案例"Struts2之类型转换器的使用案例struts002"深入探讨了如何自定义类型转换器以及在实际应用中的使用。 首先,Struts2框架提供了一系列内置的类型转换器,可以自动处理基本类型和常见类型的数据转换,如String...

    STRUTS2类型转换

    配置自定义类型转换器有两种方式:类级别和全局级别。类级别配置是针对特定Action类中的某个属性,创建一个以该属性名为前缀的conversion.properties文件,例如`MyAction-conversion.properties`,并在文件中指定...

    Mybatis实现自定义类型转换器TypeHandler的方法

    在某些场景下,MyBatis内置的类型转换器可能无法满足我们的需求,这时就需要我们自定义TypeHandler。下面将详细介绍如何在MyBatis中实现自定义类型转换器。 首先,我们需要了解MyBatis的基本概念。MyBatis是一个...

    struts2注册转换器

    然而,对于自定义格式或特殊需求,我们需要自定义转换器。转换器的实现基于`Converter`接口,该接口包含一个`convert`方法,用于执行实际的转换操作。 在“struts2-07”这个压缩包中,可能包含了一个示例项目,展示...

Global site tag (gtag.js) - Google Analytics