- 浏览: 939075 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
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文件中的内容为:
java.util.Date= cn.itcast.conversion.DateConverter
例如:java.util.Date=com.liyong.typeConvert.TypeConvert
第一种:局部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文件中的内容为:
java.util.Date= cn.itcast.conversion.DateConverter
例如:java.util.Date=com.liyong.typeConvert.TypeConvert
发表评论
-
struts2的原理
2016-07-04 09:56 566众所周知,Struts2是个 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
国际化-配置全局资源与输出国际化信息及带占位符
2012-05-08 12:06 5268知识点: 【 <1、国际化: 准备资源文件,资源文件的 ... -
国际化-配置全局资源与输出国际化信息及带占位符
2012-05-04 15:38 0知识点: 【 <1、国际化: 准备资源文件,资源文件的 ... -
基于XML校验的一些特点
2012-05-08 12:05 953【 当为某个action提供了ActionClassName ... -
基于XML配置方式对指定action方法实现输入校验
2012-05-07 08:17 1195知识点: 【 当校验文件的取名为ActionClassNam ... -
基于XML配置方式实现对action的所有方法进行输入校验
2012-05-07 08:17 1345】 知识点: 】 使用基于XML配置方式实现输入校验时,Act ... -
输入校验的流程
2012-05-07 08:17 10831。类型转换器对请求参数执行类型转换,并把转换后的值赋给act ... -
手工编写代码实现对action指定方法输入校验
2012-05-07 08:17 1317知识点: 通过validateXxx()方法实现, vali ... -
手工编写代码实现对action中所有方法输入校验
2012-05-07 08:17 1146知识点: 通过重写validate() 方法实现, vali ... -
自定义拦截器
2012-05-03 13:40 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-06 10:41 1093先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ... -
自定义拦截器
2012-05-03 13:39 0先看看下面的资料: <package name=&qu ...
相关推荐
### 自定义类型转换器 #### 一、概述 在Java编程中,经常需要处理不同数据类型之间的转换。例如,从用户界面获取的数据通常是字符串形式,而程序内部可能需要将其转换为日期、数字等其他类型。Struts2框架提供了一...
这个压缩包“struts2 全局类型转换器.rar”可能包含了一个示例或教程,教你如何在Struts2中实现全局类型转换器,以统一处理不同类型的字段转换。在Struts2中,类型转换器扮演着重要的角色,它允许你将用户输入的数据...
当默认的类型转换器无法满足特定需求时,开发者可以编写自定义类型转换器。自定义类型转换器需要实现`org.apache.struts2.util.TypeConverter`接口,或者继承`org.apache.struts2.convention.converters....
这就是"struts2自定义类型转换器"的主题。 首先,理解Struts2的类型转换机制。当Struts2接收到HTTP请求时,它会尝试将请求参数与Action类的属性进行绑定。这个过程涉及到了类型转换,Struts2内置了一套转换器机制,...
如果内置的转换器无法完成转换,例如,字符串转换为自定义类型的对象,我们就需要自定义一个类型转换器。 创建自定义数据类型转换器需要实现`org.apache.struts2.util.TypeConverter`接口。这个接口包含了一个核心...
虽然框架已经提供了对基本类型和常见对象(如`Date`)的转换支持,但对于复杂的自定义类,就需要开发者自定义类型转换器了。Struts2提供了两种实现自定义类型转换器的途径: 1. **继承`ognl.DefaultTypeConverter`*...
在Struts2中,全局转换器(Global Converters)是一个关键特性,它允许开发者为整个应用定义统一的数据类型转换规则,而不是在每个Action类中单独配置。这个特性大大提高了代码的复用性和维护性。 标题“Struts2...
在Struts中,转换器(Converter)扮演着重要的角色,主要负责在表单数据和模型对象之间进行数据类型的转换。自定义Struts时间转换器可以帮助我们更灵活地处理时间格式,满足不同场景下的时间显示和存储需求。 在...
2. 全局类型转换器:适用于所有Action的特定类型的属性。创建名为`xwork-conversion.properties`的文件,放在`WEB-INF/classes/`目录下,文件内容列出复合类型和对应的类型转换器映射,如`java.util.Date=...
在描述中提到的博客链接(由于实际无法访问,以下内容基于Struts2类型转换器的通用知识)通常会详细解释如何创建和注册自定义类型转换器。开发者可以实现`org.apache.struts2.util.TypeConverter`接口或继承`org....
#### 二、局部类型转换器与全局类型转换器的区别 **2.1 局部类型转换器** 局部类型转换器仅对某个特定的Action或模型类有效。这意味着它只在特定的场景下起作用。局部类型转换器通常通过配置文件或者注解的方式指定...
但是,有时候我们可能需要自定义转换器以满足特定需求,例如处理自定义类型的属性或者对转换过程进行特殊控制。这时,我们可以创建一个新的类实现`TypeConverter`接口,然后通过在Action类或者全局配置中注册这个...
例如,我们可以通过自定义类型转换器来验证和格式化用户输入,确保数据的准确性和一致性。同时,合理地处理转换错误能帮助开发者快速定位问题,减少用户界面的不友好提示。 总之,Struts2的类型转换是其强大功能的...
例如,要为`com.test.beans.Point`类创建全局转换器,你可以这样写: ```properties com.test.beans.Point=com.test.convert.PointConverter ``` 此时,无论在哪一个Action中使用到`Point`类,都会使用到你定义的`...
本案例"Struts2之类型转换器的使用案例struts002"深入探讨了如何自定义类型转换器以及在实际应用中的使用。 首先,Struts2框架提供了一系列内置的类型转换器,可以自动处理基本类型和常见类型的数据转换,如String...
配置自定义类型转换器有两种方式:类级别和全局级别。类级别配置是针对特定Action类中的某个属性,创建一个以该属性名为前缀的conversion.properties文件,例如`MyAction-conversion.properties`,并在文件中指定...
在某些场景下,MyBatis内置的类型转换器可能无法满足我们的需求,这时就需要我们自定义TypeHandler。下面将详细介绍如何在MyBatis中实现自定义类型转换器。 首先,我们需要了解MyBatis的基本概念。MyBatis是一个...
然而,对于自定义格式或特殊需求,我们需要自定义转换器。转换器的实现基于`Converter`接口,该接口包含一个`convert`方法,用于执行实际的转换操作。 在“struts2-07”这个压缩包中,可能包含了一个示例项目,展示...