Struts2.x自定义数据转换器实战:日期转换案例
需积分: 6 130 浏览量
更新于2024-10-16
收藏 341KB PDF 举报
"Struts 2.x高级应用探讨了Struts2框架在Web开发中的高级用法,包括如何摆脱传统的Servlet API依赖,以及如何自定义数据类型转换器以满足特定需求。Struts2通过拦截器处理用户请求,自动将String类型的参数转换为各种数据类型,但默认转换器有时无法应对所有情况。因此,学习自定义转换器是提高Struts2应用程序灵活性的关键。"
在Struts 2.x框架中,它引入了一种全新的Web编程模式,Action类不再直接依赖于request和response等Servlet API,而是通过框架内部机制处理数据转换和赋值。这一变革简化了Web应用的开发流程,但也意味着开发者可能需要自定义组件来扩展其功能。
17.1 数据类型转换器
Struts2在接收到JSP页面提交的String类型数据后,会利用拦截器(Interceptor)进行自动类型转换,将这些数据转化为Action类的属性类型,如Date、Time或Timestamp等。然而,这种默认的转换策略并不总是足够灵活,例如,对于特定的时间格式,如"12:00",默认转换器可能会抛出异常。
17.1.1 实例:日期转换器
为了克服默认转换器的局限性,开发者可以创建自定义的数据类型转换器。这通常涉及到实现ognl.TypeConverter接口,或者继承Struts2提供的DefaultTypeConverter基类,并覆盖convertValue()方法。这个方法负责将接收到的String数据转换为目标类型,同时也能将目标类型转换回String。
以下是一个自定义日期和时间转换器的例子,它支持多种时间格式的转换:
```java
package com.helloweenvsfei.struts2.convertor;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Map;
import ognl.DefaultTypeConverter;
public class DateTimeConvertor extends DefaultTypeConverter {
@Override
public Object convertValue(Map context, Object target, Class toType, Object value) {
// 实现转换逻辑,包括日期到字符串和字符串到日期的转换
}
}
```
在这个例子中,convertValue()方法接收四个参数,其中value参数是待转换的数据,toType参数表示期望转换的目标类型。由于JSP提交的数据通常是request.getParameterValues()返回的String数组,因此在处理时需要注意数据类型。
通过自定义转换器,开发者可以自由地定义数据格式,使Struts2应用程序更加健壮,能够处理更多复杂的数据输入情况。此外,这也展示了Struts2框架的可扩展性,允许开发者根据项目需求定制化框架行为,提升开发效率和应用的用户体验。
2018-10-20 上传
2013-04-15 上传
2015-05-14 上传
2015-05-15 上传
2013-09-23 上传
2010-05-21 上传
2009-02-16 上传
点击了解资源详情
点击了解资源详情
lidongxingstar
- 粉丝: 9
- 资源: 3
最新资源
- MCP C#试用试题
- nutch初学入门 非常好的入门教程
- c#面试题 网络转载 不错 经典
- C#设计模式大全 好书
- Struts+Spring+Hibernate整合教程.pdf
- BP神经网络原理及仿真实例
- 使用简介POWERPLAY
- Oracle 9i10g编程艺术
- scm手把手开发文档
- Cognos Impromptu
- LoadRunner安装手册.pdf
- cognos 部署 文档
- 用C语言进行单片机程序设计与应用
- Direct3D.ShaderX.-.Vertex.and.Pixel.Shader.Tips.and.Tricks.pdf
- 《uVision2入门教程》.pdf
- spring1.2申明式事务.txt