TODO
package mytest.utils.castor; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; import org.exolab.castor.mapping.ConfigurableFieldHandler; import org.exolab.castor.mapping.GeneralizedFieldHandler; import org.exolab.castor.mapping.ValidityException; public class DateFieldHandlerImpl extends GeneralizedFieldHandler implements ConfigurableFieldHandler { private SimpleDateFormat formatter; public void setConfiguration(Properties config) throws ValidityException { String pattern = config.getProperty("date-format"); if (pattern == null) { throw new ValidityException("Required parameter \"date-format\" is missing for FieldHandlerImpl."); } try { formatter = new SimpleDateFormat(pattern); } catch (IllegalArgumentException e) { throw new ValidityException("Pattern \"" + pattern + "\" is not a valid date format."); } } @Override public Object convertUponGet(Object value) { if (value == null) return null; Date date = (Date) value; return formatter.format(date); } @Override public Object convertUponSet(Object value) { Date date = null; try { date = formatter.parse((String) value); } catch (ParseException px) { throw new IllegalArgumentException(px.getMessage()); } return date; } @Override public Class getFieldType() { return Date.class; } }
import java.util.Date; public class TestBean { private Date d1; private Date d2; //setter and gettter }
<?xml version="1.0"?> <mapping> <field-handler name="handler1" class="mytest.utils.castor.DateFieldHandlerImpl"> <param name="date-format" value="yyyyMMdd" /> </field-handler> <field-handler name="handler2" class="mytest.utils.castor.DateFieldHandlerImpl"> <param name="date-format" value="yyyyMMddHHmmss" /> </field-handler> <class name="mytest.TestBean"> <field name="d1" type="string" handler="handler1"> <bind-xml name="D1" node="element" /> </field> <field name="d2" type="string" handler="handler2"> <bind-xml name="D2" node="element" /> </field> </class> </mapping>
注意: field-handler不能共享
在多线程下使用DateFieldHandlerImpl,formatter好像有问题,放到方法中
相关推荐
在IT行业中,当我们谈论“Castor(二)-- 自定义映射”时,这通常涉及到一个数据绑定框架,即Castor。Castor是一个Java库,它允许开发人员将XML文档和Java对象之间进行映射,从而实现数据的序列化和反序列化。这种...
Unmarshall与Marshall使用的castor-xml-1.3.2.jar包
castor-0.9.5.3-xml.jar,java和xml互相转换所使用的JAR
Castor 项目采用 BSD 类型的证书,因此可在任何类型的应用程序(包括完整版权的项目)中使用。 Castor 实际上仅仅有 XML 数据绑定,它还支持 SQL 和 LDAP 绑定
castor-1.2.jar castor-1.2-anttasks.jar castor-1.2-codegen.jar castor-1.2-ddlgen.jar castor-1.2-jdo.jar castor-1.2-xml-schema.jar castor-1.2-xml.jar
org.exolab.castor.types.Date org.exolab.castor.types.GDay org.exolab.castor.types.Time org.exolab.castor.types.Year org.exolab.castor.util.Stack org.castor.util.Base64Decoder org.castor.util.Base64...
Castor是一款开源的Java库,它提供了一个强大的对象到XML数据绑定工具,使得开发者能够方便地将Java对象序列化为XML文档,或者从XML文档反序列化为Java对象。这个"Castor应用示例代码-1"是针对《Castor功能与应用...
castor-1.2 jar包 XML转化的好东东 Castor 项目采用 BSD 类型的证书,因此可在任何类型的应用程序(包括完整版权的项目)中使用。 Castor 实际上仅仅有 XML 数据绑定,它还支持 SQL 和 LDAP 绑定
Castor,全称为Java Content Repository (JCR) API的实现之一,它是一个强大的Java对象到XML数据绑定库,常用于将Java对象序列化为XML,或者反序列化XML到Java对象。在处理XML数据时,根节点是XML文档中至关重要的...
java -classpath D:\xsd/castor-1.2-anttasks.jar;D:\xsd/castor-1.2-codegen.jar;D:\xsd/commons-logging-1.1.jar;D:\xsd/castor-1.2-ddlgen.jar;D:\xsd/castor-1.2-jdo.jar;D:\xsd/castor-1.2-xml-schema.jar;D:\...
jar包,官方版本,自测可用
Castor是Java中的一款开源工具,它主要用于XML到Java对象的映射,以及Java对象到XML的转换。在XML Schema(XSD)广泛应用于定义XML数据结构的今天,Castor提供了一个方便的方法,将XSD文件自动转化为Java类,使得...
Castor是一款强大的Java库,它提供了Java对象到XML数据的自动转换功能,反之亦然。这个插件的主要目的是简化XML处理,特别是在Java应用程序中。它通过创建映射文件(Mapping Files)来定义Java对象和XML元素之间的...
这个“castor-1.2-examples”项目提供了使用Castor 1.2版本的一些示例代码,帮助开发者更好地理解和应用这个库。 Castor的核心功能在于将Java对象序列化为XML文档,以及从XML文档反序列化回Java对象。这种能力使得...
Unmarshall与Marshall使用的jar包
jar包,官方版本,自测可用
"castor-1.2-doc.zip" 是这个版本的文档压缩包,其中可能包含用户指南、API参考、示例代码和常见问题解答等内容。 在Castor 1.2中,你可能会学习到以下关键知识点: 1. **对象关系映射(ORM)基础**:了解ORM的...
Castor 项目采用 BSD 类型的证书,因此可在任何类型的应用程序(包括完整版权的项目)中使用。 Castor 实际上仅仅有 XML 数据绑定,它还支持 SQL 和 LDAP 绑定
- **castor-core.jar**:这是Castor的核心库,包含了用于XML绑定和ORM的主要类和接口。 - **castor-xml.jar**:这个jar包包含XML解析和生成相关的组件,如DOM、SAX和StAX的支持。 - **其他依赖jar**:根据应用...
在标题中提到的"castor-0.9.9.1.jar"是Castor框架的一个特定版本的归档文件,这个版本是0.9.9.1。 Castor的核心功能在于它的数据绑定能力,使得开发者无需手动编写XML解析和生成代码。通过在Java类中使用特定的注解...