`

类型转化器(Converter)

阅读更多
类型转换器
自定义类型转换器
下面的action中使用到了枚举类型Gender,当需要将请求参数注入到gender属性时,我们必须定义转换器,否则struts2无法自动完成类型转换。

public class HelloWorldAction {
private Gender gender;
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
}

public enum Gender {
MAN,WOMEN
}

下面定义了一个针对Gender类型的类型转换器:
public class GenderConverter extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object value, Class toType) {
if(toType == Gender.class){//当字符串向Gender类型转换时
String[] params = (String[]) value;
return Gender.valueOf(params[0]);
}else if(toType == String.class){//当Gender转换成字符串时
Gender gender = (Gender) value;
return gender.toString();
}
return null;
}
}
将上面的类型转换器注册为局部类型转换器:
在Action类所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是Action的类名,后面的-conversion.properties是固定写法,对于本例而言,文件的名称应为HelloWorldAction-conversion.properties 。在properties文件中的内容为:
属性名称=类型转换器的全类名
对于本例而言, HelloWorldAction-conversion.properties文件中的内容为:
gender= net.xabc.conversion.GenderConverter

将上面的类型转换器注册为全局类型转换器:
在WEB-INF/classes下放置xwork-conversion.properties文件 。在properties文件中的内容为:
待转换的类型=类型转换器的全类名
对于本例而言, xwork-conversion.properties文件中的内容为:
net.xabc.action.Gender= net.xabc.conversion.GenderConverter

分享到:
评论

相关推荐

    struts转化器.rar

    在Struts框架中,转化器(Converter)扮演着关键角色,负责将用户输入的数据转换为应用程序所需的格式。这个压缩包“struts转化器.rar”可能包含了关于Struts转化器的各种示例和实现,包括处理数组、集合、Object...

    fuel_converter_fuelconverter_fuel_converter_automotive_original2

    标题“fuel_converter_fuelconverter_fuel_converter_automotive_original2”揭示了我们关注的主题是关于汽车燃油转化器的,这通常是指将不同类型的燃料转换为能量以驱动汽车发动机的装置。MATLAB模型与仿真则表明这...

    AD公司编著的模拟数字转化器手册

    《模拟数字转化器手册》是AD公司精心编著的一部技术指南,全面涵盖了模拟数字转换器(ADC)的原理、分类、设计与应用等多个方面。该手册由一系列章节构成,每个章节都深入探讨了ADC技术的一个关键领域。 首先,...

    CTF Converter 编码转换

    在这个场景中,“CTF Converter 编码转换”指的是在CTF比赛中可能会遇到的一种工具或技术,它用于处理不同类型的编码和编码格式,帮助参赛者解密或解码隐藏的信息。 编码转换是信息安全领域中的一个关键概念,尤其...

    struts2的类型转化的实例小程序

    下面我们将详细探讨标题和描述中提到的“Struts2的类型转化”,特别是关于日期类型的转换,以及局部和全局转化的策略。 首先,让我们了解什么是Struts2中的类型转换。在HTTP请求中,表单数据通常是字符串,而我们...

    C# to C++ Converter

    此外,C#的类型安全性和C++的模板机制也是两个语言之间的主要差异,转换器可能需要开发者在后期进行额外的代码审查和调整。 在使用"C# to C++ Converter.exe"这个执行文件时,用户需要按照指定的步骤操作,通常包括...

    VB to Java Converter

    转换器通过理解VB语法结构,将其转化为Java语法规则,同时保持代码逻辑的完整性。 在使用"Demo VB to Java Converter.exe"这个应用程序时,用户只需要按照以下步骤操作: 1. 准备待转换的VB源代码文件,确保文件...

    converter 安装

    在IT领域,"Converter"通常指的是能够转换不同格式或类型数据的工具,它可以是软件、控件或服务,用于将一种文件格式转化为另一种。在这个场景中,"converter控件"可能是一个专门用于处理数据转换的组件,适用于开发...

    debezium-datetime-converter:Debezium自定义转换器用于处理mysql datetime类型的问题

    Debezium自定义转换器用于处理mysql datetime类型的问题 MySQL的 Binlog连接器 德比兹 德比兹图式 日期(2021-01-28) 本地日期(2021-01-28) 整数(18655) 碘化氢时间日期 时间(17:29:04) 期间(PT17H29M4...

    converter实现

    1. **自定义类型转化器(Converter)**: 自定义`Converter`是Spring Framework中的一项功能,它提供了将一种类型的数据转换为另一种类型的能力。通过实现`org.springframework.core.convert.converter.Converter`...

    struts2简单实例(类型转换方法对比)

    全局类型转换是通过实现`Converter`接口或者继承`StrutsTypeConverter`类,并在`struts.xml`配置文件中注册该转换器实现的。这种方式可以应用于所有Action中的相同类型属性。全局类型转换器的优点在于,一旦定义,...

    C-to-Visual Basic Converter

    转换器需要建立一个类型映射表,确保数据类型的准确转换。 4. **控制结构转换**:C语言的if-else、switch-case、for、while等语句在VB中对应If...Then...Else、Select Case、For...Next、Do...Loop等。转换器需要...

    自己写的转换器,包含各种基本的数据类型。

    这样的转换器能够帮助开发者更方便地处理不同数据类型的转换工作,尤其是在处理用户表单提交的数据时,可以将前端传入的字符串数据转化为后端需要的特定类型,如整型、浮点型、日期型等。 描述中提到,由于Struts1...

    转换器(Converter)——Struts 2.0中的魔术师

    在Struts 2.0框架中,转换器(Converter)扮演着至关重要的角色,它是将用户界面提交的数据转化为模型对象属性的关键组件。Struts 2的魔术师——转换器,使得数据绑定变得更加灵活和强大,它能处理各种类型的数据...

    Js to CSharp script converter

    4. **编程模式调整**:处理JavaScript特有的编程模式,如闭包和动态属性,将其转化为C#的相应概念。 5. **代码重构**:可能涉及类结构的重新组织,以符合C#面向对象编程的规范。 6. **错误处理**:识别无法直接转换...

    C# To JAVA Converter v17.10.6(最新破解版)

    总的来说,C# To Java Converter v17.10.6是开发过程中的得力助手,它使得开发者能够更好地利用已有的C#代码资源,将其转化为适应Java环境的代码,从而在跨平台项目中发挥更大的价值。同时,这也是一种学习和理解两...

    AV_Converter 视频转换器

    《AV_Converter 视频转换器:专业手机视频转换解决方案》 在数字化时代,多媒体内容尤其是视频已经成为我们日常生活的一部分。为了适应各种设备的播放需求,视频转换软件的重要性日益凸显。"AV_Converter 视频转换...

    springmvc实现自定义类型转换器示例

    首先,自定义类型转换器需要实现Spring的核心接口`Converter, T>`,其中`S`是源类型,`T`是目标类型。在这个示例中,`S`是`String`,`T`是`Department`类的一个实例。创建一个名为`DepartmentConvertor`的类,并实现...

    XStream的Date转换 @XStreamConverter DateConverter

    在这个场景中,我们将深入探讨XStream如何处理日期类型,特别是使用`@XStreamConverter`注解来自定义Date转换器。 标题提到的“XStream的Date转换 @XStreamConverter DateConverter”主要涉及两个核心概念:XStream...

    Converter.rar

    ASC文件可能是由某种调试器、编程器或数据记录工具生成的,而“Converter.exe”就是用来解析这些十六进制形式的地址和数据,并将其转化为更直观的ASCII文本。 “不支持分页转换”意味着该软件可能无法处理大型文件...

Global site tag (gtag.js) - Google Analytics