`
starzhang
  • 浏览: 123911 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

Strut中转换器的使用

阅读更多

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日期转换器

    要使用Struts的日期转换器,首先你需要在Action类中定义一个日期类型的属性,并为其添加相应的注解`@DateTimeFormat`,或者在Struts配置文件中定义一个转换器。`@DateTimeFormat`注解允许你指定日期的输入格式,这样...

    struts2 转换器

    例如,你可以在转换器中检查日期是否符合特定格式,或者数值是否在指定范围内。这样,你可以在数据到达业务逻辑之前就捕获并处理潜在的错误,提高了系统的健壮性。 文件名“struts2-converter”可能包含的是一个...

    struts2注册转换器

    4. **使用转换器**:一旦转换器注册成功,Struts2将在处理表单提交时自动调用该转换器,将字符串转换为日期对象。 通过这样的自定义转换器,我们可以确保Struts2能正确处理特定格式的日期输入,避免了因格式不匹配...

    struts2 类型转换器

    在Struts2中,类型转换器(Type Converter)是框架的一个关键特性,用于处理Action类中属性的自动类型转换。这个特性使得开发者无需手动进行数据类型之间的转换,从而提高了开发效率和代码的可读性。 标题中的...

    struts2自定义类型转换器

    3. **处理日期格式**:在自定义转换器中,我们需要解析前端传递的日期字符串并转换为Date对象。这通常涉及到日期格式化。可以使用`SimpleDateFormat`类来完成这个任务。 ```java try { SimpleDateFormat formatter...

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

    本教程主要探讨Struts2.1源代码中的自定义类型转换器。 1. **类型转换器的作用** 类型转换器是Struts2框架的核心组件之一,其主要任务是将用户的输入(通常是字符串)转换为Action类中声明的字段类型。这在处理...

    Struts 自定义转换器

    在struts.xml配置文件中,你可以使用`&lt;conversion&gt;`标签来指定转换器类,如下: ```xml &lt;package name="yourPackage" extends="struts-default"&gt; ``` 或者,你也可以在Action配置中局部注册转换器: ```...

    自定义struts时间转换器

    这时,我们就需要自定义一个Struts转换器来完成这个任务。 自定义Struts转换器的步骤如下: 1. 创建转换器类:继承`org.apache.struts2.util.StrutsTypeConverter`类,并重写其`convertFromString`和`...

    Struts自定义类型转换器

    ### Struts自定义类型转换器 #### 一、概述 在Web开发中,表单提交的数据通常是字符串形式的,而在业务逻辑处理时往往需要将这些数据转换...希望本文能帮助读者更好地理解和使用Struts框架中的自定义类型转换器功能。

    struts2数据类型转换器

    这时,我们可以创建一个新的类实现`TypeConverter`接口,然后通过在Action类或者全局配置中注册这个转换器,使得Struts2在需要时能够使用它。 注册自定义类型转换器有两种方式: 1. 在Action类上使用注解`@...

    Struts2 自定类型转换器(三十四)

    - 在`struts.xml`配置文件中使用`&lt;conversion&gt;`标签注册转换器,指定对应的转换类和需要转换的类型。 5. **测试和调试** 测试自定义类型转换器可以通过模拟HTTP请求,观察Action对象中的属性值是否正确转换。如果...

    Struts的自定义转换器

    `LineConvertor` 是一个自定义的Struts转换器类,继承自`StrutsTypeConverter`。这个类的主要职责是为特定的数据类型提供转换方法,确保从请求参数到模型对象的转换过程符合业务逻辑。 在Struts中,转换器的实现...

    Struts2.0属性转换器的作用说明

    Struts2.0属性转换器(Converters)是框架中一个关键组件,它负责将用户输入的数据转换为Java对象的属性类型,确保数据在表单提交后能够正确地绑定到模型对象上。转换器机制的存在使得开发者可以自定义数据类型转换...

    struts 2.0 自定义类型转换器 注册类型转换器 入门实例 简单实例

    - 配置文件注册:在`struts.xml`或相关的配置文件中,使用`&lt;conversion&gt;`标签指定要转换的类和对应的转换器类。 ```xml &lt;package name="default" namespace="/" extends="struts-default"&gt; ``` - 动态...

    struts2的转换器

    此外,Struts2还支持OGNL表达式,允许在转换过程中使用复杂的逻辑。 7. **错误处理**:如果转换失败,Struts2会抛出一个`ConversionException`,并将其转换为一个错误消息,该消息可以通过Struts2的国际化机制显示...

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

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

    json struts2转换

    本文将深入探讨如何在Struts2框架中进行JSON数据的转换和处理。 首先,`struts2-core-2.1.6.jar`是Struts2的核心库,包含了框架的基础组件,如Action、Interceptor、Result等。而`struts2-json-plugin-2.1.8.jar`则...

    Struts2转换器、拦截器、验证以及国际化

    ### Struts2转换器、拦截器、验证以及国际化深度解析 #### 类型转换概述与实践 类型转换在Struts2框架中扮演着至关重要的角色,它解决了前端展示数据与后端处理数据之间的类型不匹配问题。在Web开发中,前端往往以...

Global site tag (gtag.js) - Google Analytics