• 使用Jaxb2进行xml与bean的转义时Date的format设置


    参考http://jackyrong.iteye.com/blog/1826699

     JAXB转换JAVA OBJECT到XML的时候,对java.util.Date的转换有些要注意的地方

    输出的格式为:2014-05-18T12:00:09+08:00

    希望能够自定义date的format,具体解决方法如下:

    要继承XmlAdapter,重写其中的方法去对日期进行格式化

    编写一个class如下:

     1 public class JaxbDateSerializer extends XmlAdapter<String, Date>{
     2     @Override
     3     public Date unmarshal(String v) throws UFEException, ParseException {
     4         SimpleDateFormat  dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     5 // 避免线程不安全,这里使用局部变量,而非全局变量
     6         return dateformat.parse(v);
     7     }
     8 
     9     @Override
    10     public String marshal(Date v) throws UFEException {
    11         SimpleDateFormat  dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    12         return dateformat.format(v);
    13     } 
    14 }

    而后在配置文件中,对jaxbMarshaller进行如下配置:(注意adapters的list里,有上述写的类)

    <bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
            <property name="ClassesToBeBound">
                <list>
                    <value>cn.ac.iscas.pebble.ufe.bean.SearchRecord</value>
                    <value>cn.ac.iscas.pebble.ufe.bean.Result</value>
                </list>
            </property>
            <property name="adapters">
                <list>
                    <bean class="cn.ac.iscas.pebble.ufe.ds.JaxbDateSerializer" />
                </list>
            </property>
        </bean>

    而后对于要转换成xml的bean里的date属性添加@XmlJavaTypeAdapter(JaxbDateSerializer.class)属性

    比如上述的classestobebound里有两个bean,一个searchRecord,如下:

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlRootElement(name="parameters")
    public class SearchRecord {
        @XmlElement
        private Integer rid;
        @XmlElement
        private Integer fid;
        @XmlJavaTypeAdapter(JaxbDateSerializer.class)
        @XmlElement
        private Date time;
        @XmlElement
        private Integer sid;
        @XmlElement
        private Integer calculatestate;
        @XmlJavaTypeAdapter(JaxbDateSerializer.class)
        @XmlElement
        private Date lasttime;
        @XmlElement
        private Integer session;
        @XmlElement
    ……………
  • 相关阅读:
    WCF之ABC
    一次性为自定义实体类的数据填充
    在HttpHandlers中使用Session
    ASP.NET 2.0防止同一用户同时登陆
    Winson.Framework 1.5发布!
    SqlPager分页控件的使用!
    ExtJS 学习心得(一)
    [原创]Discuz!NT1.1高亮代码插件1.5稳定版!
    Winson.Framework 1.0发布!
    一个不错的WEB打印解决方案!
  • 原文地址:https://www.cnblogs.com/dorothychai/p/3760060.html
Copyright © 2020-2023  润新知