Struts1.x 中转换器能转换的类型默认支持的是:
BigDecimal、BigInteger、Boolean、Byte、Character、Double、Float、Integer、Long、Short、java.sql.date这几种类型。
通常我们通过表单传递数据到ActionForm都是字符串String类型,Strut会根据我们提交表单的数据自动为我们转换成ActionForm所定义的数据类型,
比如:我们在ActionForm中定义了一个Number整型类型的属性,通过表单传递一个数字过来,表单传递过来的是字符串,Struts就会自动帮我们转换成对应的数据类型---整型,然后再赋值给ActionForm。
传递以上所列出的类型Struts 都会自动帮我们完成。
假如 我们在ActionForm中定义一个java.util.Date类型的数据行,Struts就不能帮我们转换成这种类型,而且抛出异常。
这就需要我们自己定义一个转换器,方法如下:
方法一:
1、实现org.apache.commons.beanutils.Converter接口,实现它的convert方法,在这个方法体里面实行转换,这个方法返回的是一个Object类型,传递了两个参数,一个是Class类型type,一个事Object类型值value,Object值value就我们传递过来需要转换的参数,代码如下:
// 如果是空直接返回
if (value == null) {
return value;
}
// 如果是java.util.Date类型直接返回
if (value instanceof Date) {
return value;
}
// 定义一个Date(注意是java.util.Date的,不是sql包里面的)
Date date = null;
// 如果是字符串类型,转换成Date类型
if (value instanceof String) {
// 格式化 后面参数是输入日期的格式,表单中输入日期的格式必须跟这个一致
SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
date = sFormat.parse((String)value);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return date;
2、convert方法写完以后,新建一个Servlet继承HttpServlet,复写他的初始化方法init(),进行注册,代码如下:
ConvertUtils.register(new UtilDateConvert(), Date.class);
3、然后配置web.xml配置文件,代码如下:
<servlet>
<servlet-name>Servlet名字</servlet-name>
<servlet-class>Servlet完整路径</servlet-class>
<!-- 这个Servlet要求在tomcat启动时候初始化(数值随意)
<load-on-startup>3</load-on-startup>
</servlet>
这样就完成了整个自定义转换器的步骤。
方法二:
1、 同样实现org.apache.commons.beanutils.Converter接口,实现它的convert方法,在这个方法体类实行转换,代码跟方法一样。
2、注册方法,实现PlugIn接口,在她的初始化方法init()里面注册转换器,代码同方法一样,
3、配置struts-config.xml文件,代码如下:
<plug-in className="实现PlugIn接口类的完整路径" />
这样就完成了Strut1.x自定义转换器
方法一和方法二执行的效果一样,只是注册实现的方法不一样而已。
如果用Struts 框架做开发,推荐使用第二种,个人感觉应该好点,毕竟PlunIn是Struts的类,结合应该紧密一点。
分享到:
相关推荐
要使用Struts的日期转换器,首先你需要在Action类中定义一个日期类型的属性,并为其添加相应的注解`@DateTimeFormat`,或者在Struts配置文件中定义一个转换器。`@DateTimeFormat`注解允许你指定日期的输入格式,这样...
例如,你可以在转换器中检查日期是否符合特定格式,或者数值是否在指定范围内。这样,你可以在数据到达业务逻辑之前就捕获并处理潜在的错误,提高了系统的健壮性。 文件名“struts2-converter”可能包含的是一个...
4. **使用转换器**:一旦转换器注册成功,Struts2将在处理表单提交时自动调用该转换器,将字符串转换为日期对象。 通过这样的自定义转换器,我们可以确保Struts2能正确处理特定格式的日期输入,避免了因格式不匹配...
在Struts2中,类型转换器(Type Converter)是框架的一个关键特性,用于处理Action类中属性的自动类型转换。这个特性使得开发者无需手动进行数据类型之间的转换,从而提高了开发效率和代码的可读性。 标题中的...
3. 使用转换器:在Action类中,你可以像平常一样声明需要转换的属性,Struts2框架会自动使用你在配置文件中指定的转换器进行转换。 ```java public class YourActionClass extends ActionSupport { private ...
3. **处理日期格式**:在自定义转换器中,我们需要解析前端传递的日期字符串并转换为Date对象。这通常涉及到日期格式化。可以使用`SimpleDateFormat`类来完成这个任务。 ```java try { SimpleDateFormat formatter...
本教程主要探讨Struts2.1源代码中的自定义类型转换器。 1. **类型转换器的作用** 类型转换器是Struts2框架的核心组件之一,其主要任务是将用户的输入(通常是字符串)转换为Action类中声明的字段类型。这在处理...
在struts.xml配置文件中,你可以使用`<conversion>`标签来指定转换器类,如下: ```xml <package name="yourPackage" extends="struts-default"> ``` 或者,你也可以在Action配置中局部注册转换器: ```...
这时,我们就需要自定义一个Struts转换器来完成这个任务。 自定义Struts转换器的步骤如下: 1. 创建转换器类:继承`org.apache.struts2.util.StrutsTypeConverter`类,并重写其`convertFromString`和`...
### Struts自定义类型转换器 #### 一、概述 在Web开发中,表单提交的数据通常是字符串形式的,而在业务逻辑处理时往往需要将这些数据转换...希望本文能帮助读者更好地理解和使用Struts框架中的自定义类型转换器功能。
这时,我们可以创建一个新的类实现`TypeConverter`接口,然后通过在Action类或者全局配置中注册这个转换器,使得Struts2在需要时能够使用它。 注册自定义类型转换器有两种方式: 1. 在Action类上使用注解`@...
- 在`struts.xml`配置文件中使用`<conversion>`标签注册转换器,指定对应的转换类和需要转换的类型。 5. **测试和调试** 测试自定义类型转换器可以通过模拟HTTP请求,观察Action对象中的属性值是否正确转换。如果...
`LineConvertor` 是一个自定义的Struts转换器类,继承自`StrutsTypeConverter`。这个类的主要职责是为特定的数据类型提供转换方法,确保从请求参数到模型对象的转换过程符合业务逻辑。 在Struts中,转换器的实现...
Struts2.0属性转换器(Converters)是框架中一个关键组件,它负责将用户输入的数据转换为Java对象的属性类型,确保数据在表单提交后能够正确地绑定到模型对象上。转换器机制的存在使得开发者可以自定义数据类型转换...
- 配置文件注册:在`struts.xml`或相关的配置文件中,使用`<conversion>`标签指定要转换的类和对应的转换器类。 ```xml <package name="default" namespace="/" extends="struts-default"> ``` - 动态...
此外,Struts2还支持OGNL表达式,允许在转换过程中使用复杂的逻辑。 7. **错误处理**:如果转换失败,Struts2会抛出一个`ConversionException`,并将其转换为一个错误消息,该消息可以通过Struts2的国际化机制显示...
本案例"Struts2之类型转换器的使用案例struts002"深入探讨了如何自定义类型转换器以及在实际应用中的使用。 首先,Struts2框架提供了一系列内置的类型转换器,可以自动处理基本类型和常见类型的数据转换,如String...
本文将深入探讨如何在Struts2框架中进行JSON数据的转换和处理。 首先,`struts2-core-2.1.6.jar`是Struts2的核心库,包含了框架的基础组件,如Action、Interceptor、Result等。而`struts2-json-plugin-2.1.8.jar`则...
### Struts2转换器、拦截器、验证以及国际化深度解析 #### 类型转换概述与实践 类型转换在Struts2框架中扮演着至关重要的角色,它解决了前端展示数据与后端处理数据之间的类型不匹配问题。在Web开发中,前端往往以...