首页 > 编程语言 >jaxb中对java.util.Date的处理

jaxb中对java.util.Date的处理

时间:2022-12-05 10:02:37浏览次数:33  
标签:java jaxb private util Date import public


JAXB是个好东西,转换JAVA OBJECT到XML的,最近发现JAXB中对java.util.Date的转换有些要注意的地方,笔记之。


比如有一个POJO如下:

import java.util.Date;

public class Company {

private int id;

private String company;

private double price;



另外一个POJO,其中持有的是list类型的Company,如下:


package com.loiane.model;

import java.util.List;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="companies")
public class Companies {

@XmlElement(required = true)
private List<Company> list;

public void setList(List<Company> list) {
this.list = list;
}
}



这样通过spring mvc出来的XML会发现:




@RequestMapping(value="/company/view.action")

public @ResponseBody Companies view() throws Exception {}



<companies>
<list>
<change>0.02</change>
<company>3m Co</company>
<id>1</id>
<lastChange>2011-09-01T00:00:00-03:00</lastChange>
。。
</list>
。。。。。。。
</companies>



时间格式不对头,查阅了下,发现要继承XmlAdapter,重写其中的方法去对日期进行格式化,


import java.text.SimpleDateFormat;
import java.util.Date;

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class JaxbDateSerializer extends XmlAdapter<String, Date>{

private SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");

@Override
public String marshal(Date date) throws Exception {
return dateFormat.format(date);
}

@Override
public Date unmarshal(String date) throws Exception {
return dateFormat.parse(date);
}
}



然后在需要对日期处理的属性中,加入


@XmlJavaTypeAdapter ,即:



package com.loiane.model;

import java.util.Date;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;

import com.loiane.util.JaxbDateSerializer;

public class Company {

private int id;

private String company;


@XmlJavaTypeAdapter(JaxbDateSerializer.class)
public Date getLastChange() {
return lastChange;
}

}



就可以生成合乎规格的信息咯,如下


<companies>
<list>
<change>0.02</change>
<company>3m Co</company>
<id>1</id>
<lastChange>09-01-2011</lastChange>

</list>
。。。。。。。。。
</companies>

标签:java,jaxb,private,util,Date,import,public
From: https://blog.51cto.com/u_14230175/5911341

相关文章

  • javascrpt 监听元素变化的两个API
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"c......
  • 1.4 Apache Hadoop完全分布式集群搭建-hadoop-最全最完整的保姆级的java大数据学习资
    目录1.4ApacheHadoop完全分布式集群搭建1.4.1虚拟机环境准备1.4.2集群规划1.4.3安装Hadoop1.4.3.1集群配置1.4.3.1.1HDFS集群配置1.4.3.1.2MapReduce集群配置1.4.......
  • Web入门:JavaScript文字动画
    欢迎来的我的小院,恭喜你今天又要涨知识了!案例内容利用JavaScript实现文字逐步展现的动画效果。演示学习<!DOCTYPEhtml><htmllang="en"><head><metach......
  • java 给csv增加一列
    java给csv增加一列 /***读取CSV文件内容*@paramcsvFileName*@throwsIOException*/publicstaticvoidreadCSVAndWrite(StringinputCsvFileN......
  • Android Studio的Java项目种运行main()的方法
    首先我们创建一个类publicclassTestClass{publicstaticvoidmain(String[]args){Stringstring="{\"name\":\"Bingo\",\"age\":18}";S......
  • [N]Chap01:Java概述
    Thisisnottheend;Itisnoteventhebeginningoftheend.Butitis,Perhaps,Theendofthebeginning.......
  • JAVA8新特性学习
    只有不断的学习,才能成长。JAVA8-新特性1JAVA8函数示编程,比JAVA8之前的程序更加简洁通用。2JAVA8并行和并发处理上更好。以前JAVA8之前只能用1个核CPU,现在可以用多个核......
  • 04 Java 方法
    Java方法一,什么是方法方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设......
  • java基础03
    方法什么是方法System.out.println(),调用系统中System类中的标准输出对象out中的println方法Java方法是语句的集合,他们在一起执行一个功能方法包含于类或者对象中方......
  • Java异常机制
    什么是异常实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要......