jaxb util_JAXB自定义绑定– Java.util.Date / Spring 3序列化

jaxb util

JaxB可以处理Java.util.Date序列化,但是需要以下格式: “ yyyy-MM-ddTHH:mm:ss ”。 如果需要将日期对象格式化为另一种格式怎么办?

我有同样的问题时,我正在同春MVC 3和Jackson JSON处理器 ,最近,我遇到了同样的问题与Spring MVC 3和工作JAXB用于XML序列化 。

让我们来探讨这个问题:

问题:

我有以下Java Bean,要使用Spring MVC 3以XML进行序列化:

package com.loiane.model;import java.util.Date;public class Company {private int id;private String company;private double price;private double change;private double pctChange;private Date lastChange;//getters and setters

我还有另一个对象将上面的POJO包装起来:

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控制器中,我将通过@ResponseBody批注返回一个公司列表-这将使用JaxB自动序列化该对象:

@RequestMapping(value="/company/view.action")
public @ResponseBody Companies view() throws Exception {}

当我调用controller方法时,这就是返回视图的内容:

<companies><list><change>0.02</change><company>3m Co</company><id>1</id><lastChange>2011-09-01T00:00:00-03:00</lastChange><pctChange>0.03</pctChange><price>71.72</price></list><list><change>0.42</change><company>Alcoa Inc</company><id>2</id><lastChange>2011-09-01T00:00:00-03:00</lastChange><pctChange>1.47</pctChange><price>29.01</price></list>
</companies>

注意日期格式。 它不是我希望它返回的格式。 我需要以以下格式序列化日期:“ MM-dd-yyyy解决方案:

我需要创建一个扩展XmlAdapter的类并重写marshalunmarshal方法,在这些方法中,我将根据需要设置日期格式:

package com.loiane.util;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");@Overridepublic String marshal(Date date) throws Exception {return dateFormat.format(date);}@Overridepublic Date unmarshal(String date) throws Exception {return dateFormat.parse(date);}
}

在我的Java Bean类中,我只需要在date属性的get方法中添加@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;private double price;private double change;private double pctChange;private Date lastChange;@XmlJavaTypeAdapter(JaxbDateSerializer.class)public Date getLastChange() {return lastChange;}//getters and setters
}

如果我们尝试再次调用controller方法,它将返回以下XML:

<companies><list><change>0.02</change><company>3m Co</company><id>1</id><lastChange>09-01-2011</lastChange><pctChange>0.03</pctChange><price>71.72</price></list><list><change>0.42</change><company>Alcoa Inc</company><id>2</id><lastChange>09-01-2011</lastChange><pctChange>1.47</pctChange><price>29.01</price></list>
</companies>

问题解决了!

编码愉快! icon smile JAXB自定义绑定Java.util.Date / Spring 3序列化

参考:来自Loiane Groner博客博客的JCG合作伙伴 Loiane Groner提供的JAXB自定义绑定– Java.util.Date/Spring 3序列化 。


翻译自: https://www.javacodegeeks.com/2012/06/jaxb-custom-binding-javautildate-spring.html

jaxb util

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356313.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

いちがつ(2017/1)

org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map com.enjoyor.soa.traffic.core.tms.mapper.MarkingInfoMapper.Map mybatis的xml配置文件中没有配置parameter map。 要么配置parameter map 要么将select,add等属性中的parameter map 改…

oracle数据库没有选项,创建oracle数据库时,出现ORA-00922: 选项缺失或无效

sdd53HOME新建oracle数据库时遇到ORA-00922: 选项缺失或无效的问题&#xff0c;如图&#xff1a;原因&#xff1a;一般是语句的语法有问题。比如命名不对&#xff0c;关键字写错等等。对于非标准的命名&#xff0c;一般采用双引号来创建。具体原因&#xff1a;就是开始的用户密…

set和enum类型的用法和区别

mysql中的set和enum类型的用法和区别 mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值, 不同的是set可以取多个值,enum只能取一个值。 12345678910111213[php] CREATE TABLE 20121101_t ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(20) N…

Java EE 8 MVC:使用查询参数

在上一篇有关新Java EE MVC框架的文章中&#xff0c;我们详细介绍了Controllers 。 在本篇和以下文章中&#xff0c;我们将看到如何在MVC控制器中访问各种类型的请求数据。 Java EE MVC大量使用了JAX-RS&#xff0c;我们将在本篇和下一篇文章中看到的大多数内容都是JAX-RS的功…

oracle 10g r2 for solaris x86,Oracle10g for Solaris9(x86)安装指南

Oracle10g for Solaris9(x86)安装指南一、安装环境检查&#xff1a;机器环境&#xff1a;cpu:P41.7G&#xff0c;内存:1G&#xff1b;OS&#xff1a;Windows 2000 Advaced Server(sp4)虚拟机系统平台&#xff1a;Vmware Workstation4.5.2Solaris9(x86)虚拟机资源分配&#xff1…

百度脑图

1.地址&#xff1a;http://naotu.baidu.com/ 2.简介&#xff1a;在线创作思维导图。 3.优势&#xff1a; 3.1在线使用&#xff0c;学习成本低。 3.2有多种导图展示方式。 4.缺点&#xff1a; 4.1只有思维导图一种形式比较单一转载于:https://www.cnblogs.com/hmdlys/p/6252071.…

oracle 导出 cuow,直通伍伦贡大学的升学保障— 伍伦贡大学学院(UOWC)

伍伦贡大学学院是直属大学的桥梁课程提供者&#xff0c;为没有达到直入本科的学生提供另一种进入大学的途径&#xff0c;也为大学提供语言类课程。自1989年成立以来&#xff0c;为大学输送了数以千计的优秀学生。目前学院有来自世界30多个国家超过2000名在校生。在伍伦贡大学学…

async 和 await 的进阶

异常的捕获&#xff1a; static void Main(string[] args){//继续我们的异步编程的使用嘀呀&#xff1b;//关于主线程是无法捕获我们子线程中的异常滴滴啊&#xff1b;var t DoExceptionAsync();t.Wait();Console.WriteLine($"{nameof(t.Status)}: {t.Status}"); …

spring依赖注入_Spring3:类型安全依赖项注入

spring依赖注入在从Spring跳到类型安全依赖注入之前&#xff0c;我想讨论一下我们之前所做的方式。 我们一直在借助Spring的Autowired注释按类型使用依赖项注入。 像这样的东西会注入Spring Bean。 Autowired private StudentDao studentDao; // Autowires by type. Injects th…

linux系统查看当前安装字库,linux下怎样安装中文字体?

1、首先禁用xfs服务器。 运行Setup命令&#xff0c;在服务项中中止xfs随系统运行的特性。之所以禁用xfs服务器主要是因为xfs会自动更新字体目录下的fonts.dir文件&#xff0c;从而影响我们所做的修改。2、将选中的字体字库拷贝到相关的目录。 一般选用simsun.ttf为基本的字体(据…

Spark Shell的简单使用

简介 Spark shell是一个特别适合快速开发Spark原型程序的工具&#xff0c;可以帮助我们熟悉Scala语言。即使你对Scala不熟悉&#xff0c;仍然可以使用这个工具。Spark shell使得用户可以和Spark集群交互&#xff0c;提交查询&#xff0c;这便于调试&#xff0c;也便于初学者使用…

linux vps 命令,CentOS最常用Linux vps操作命令整理大全

vps用的centos系统&#xff0c;为了方便查看整理了一些Linux常用命令&#xff1b;忘记的时候翻出来看看&#xff0c;不用二次浪费时间东找西找浪费时间&#xff1b;文件和目录:# cd /home 进入 ‘/home’ 目录# cd .. 返回上一级目录# cd ../.. 返回上两级目录# cd – 返回上次…

Java的20年:重大事件的时间表

翻译自: https://www.javacodegeeks.com/2015/12/2-decades-java-timeline-notable-events.html

w10系统自带linux系统,win10下,内置linux系统的安装和体验,你造吗?

原标题&#xff1a;win10下&#xff0c;内置linux系统的安装和体验&#xff0c;你造吗&#xff1f;众所周知&#xff0c;windows系统和linux系统一直是水火不容&#xff0c;而在最新的win10系统却完美兼容了linux系统&#xff0c;但是在默认情况下是关闭的&#xff0c;需要我们…

北风网09.接收普通消息2

该公众号暂时无法提供服务,请稍后再试 转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6273960.html

中科软测试面试题2019_2019国考成绩今日是否会发布,笔试120能进面不?

2019国考成绩要出来了不&#xff1f;2019国考成绩何时出来&#xff1f;现在已是1月中旬&#xff0c;许多考生对于自己的国考笔试成绩都非常期待&#xff0c;而最近风声四起&#xff0c;搞得考生们人心慌慌&#xff0c;那么2019国考成绩要出来了不&#xff1f;现在我们一起来分析…

C# 数据库连接测试以及备份

现在我们要做一个如图5.1的数据库连接配置&#xff0c;从界面上看有三个功能需要实现&#xff1a;从配置文件中读取数据库连接的相关属性、备份数据库、测试连接。 现在我们就一个一个开始讲解。 图5.1 1.从配置文件中读取数据库连接的相关属性 1) 配置文件中的数据库连接: &l…

Linux程序选择boy糊者girl,linux脚本程序练习-Go语言中文社区

1、编写一个名为iffile程序&#xff0c;它执行时判断/bin目录下date文件是否存在&#xff1f;2、编写一个名为greet的问候程序&#xff0c;执行时能根据系统当前的时间向用户输出问候信息。设从半夜到中午为早晨&#xff0c;中午到下午六点为下午&#xff0c;下午六点到半夜为晚…

什么是初效过滤器_初效过滤器怎么样 初效过滤器特点介绍【详解】

说起过滤器&#xff0c;我们大家都不陌生。现在环境污染严重&#xff0c;我们大多数家庭都在使用 净水器 、 空气净化器 等家电设备&#xff0c;它们需要依靠过滤器来净化水质和空气&#xff0c;让我们的生活更加健康。不过&#xff0c;您知道初效过滤器安装的步骤是什么吗?下…

组件 模块 插件_播放2 –模块,插件有什么区别?

组件 模块 插件关于Play 2模块和插件似乎有些困惑。 我想这是因为两者经常是同义词。 在Play&#xff08;两个版本-1和2&#xff09;中&#xff0c;存在明显的差异。 在本文中&#xff0c;我将研究什么是插件&#xff0c;如何在Java和Scala中实现插件&#xff0c;以及如何从模块…