xml java转换框架Castor记录

阅读更多

由于项目需要和其他公司合作开发,所以需要XML来作为传输数据格式。

感觉DOM SAX JAXP 用起来过于复杂,就选择了Castor这个框架,在使用过程中碰到了一些问题记录一下。

 

 

1: Castor 和 Spring 整合

 


        
            
                mapping.xml
            
        
    


定义从xml  组装成 java 对象 bean
    

        
            
        
    


定义从java 对象 组装成 xml bean
    
        
            
        
    

 

代码调用

                DATA data=new DATA();
                data.setGatewayId(1L);
                data.setNodeId(1L);
                data.setTime(new Date());
                data.setFRQ(2.00f);
    
               StringWriter writer=new StringWriter();
                marshaller.setWriter(writer);
                marshaller.marshal(data) ;
 

 

 

 

2: 有一些特殊的字段比如时间格式 需要自定义 fileHandler

 

 

 

public class TimeHandlerImpl extends GeneralizedFieldHandler {

    public final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    @Override
    public Object convertUponGet(Object value) {
        if(value==null)
            return null;
        Date date = (Date) value;
        return format.format(date);
    }

    @Override
    public Object convertUponSet(Object value) {
        if(value==null)
            return null;
        String dateStr = (String) value;

        try {
            return format.parse(dateStr);
        }

        catch (ParseException e) {
            throw new RuntimeException(e);
        }

    }

    @Override
    public Class getFieldType() {
        return Date.class;
    }

}

 
mapping.xml 当中定义时间格式字段
   
            
        



参考:1 http://www.castor.org/1.2/xml-mapping.html#Sample-1:-Defining-a-custom-field-handler
            2 http://www.ibm.com/developerworks/cn/xml/x-bindcastor/

你可能感兴趣的:(XML,框架,Java,Bean,Spring)