struts2 自定义类型转换器

2014-11-24 10:17:10 · 作者: · 浏览: 0

原理详述


  Struts2自定义类型转换器分为局部类型转换器和全局类型转换器


  (1)局部类型转换器


  如果页面传来一个参数reg.action birthday=2010-11-12到后台action,然后属性用date类型是可以接收到的,但是如果传的是20101112这样类型的字符串,用date类型是获取不到,并且会出现错误的,struts2提供了一种类型转换器供我们使用。


  以下为局部类型转换器的开发步骤


  a.首先要写一个类来继承DefaultTypeConverter


  b.然后覆盖convertValue这个方法,在里面进行数据转型


  c.在action类所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是类名,后面的-conversion.properties是固定的写法,


  如:HelloWorldAction-conversion.properties


  d.Properties文件里面的内容为:属性名称=类型转换器的全类名(既包名.类名)


  如:birthday=com.ljq.type.converter.DateTypeConverter


  (2)全局类型转换器


  如果业务需求所有的日期都要转换,则可以使用全局类型转换器,只要在src根目录下面放置xwork-conversion.properties文件,并且properties文件中的内容为:


  待转换的类型=类型转换器的全类名


  如:java.util.Date = com.type.Converter.DateTypeConverter 即可


  代码


  Action类


简单使用



代码:


将上面的类型转换器注册为局部类型转换器:


在Action类所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是Action的类名,后面的-conversion.properties是固定写法,对于本例而言,文件的名称应为HelloWorldAction-conversion.properties 。在properties文件中的内容为:属性名称=类型转换器的全类名


对于本例而言, HelloWorldAction-conversion.properties文件中的内容为:


createtime= cn.itcast.conversion.DateConverter