JAXB中各种常见注解小结
来源:互联网 发布:阿里云 视频服务 编辑:程序博客网 时间:2024/05/16 06:40
在JAXB中(用于JAVA对象和xml之间的转换),经常出现各类的 @XmlElement这样的标记,
下面就来以一个例子小结下,加深学习:
bean文件 Customer.java
package jaxb2;import java.util.*;import javax.xml.bind.annotation.*;@XmlRootElement@XmlAccessorType(XmlAccessType.FIELD)public class Customer { private List<String> emailAddresses; public Customer() { emailAddresses = new ArrayList<String>(); } public List<String> getEmailAddresses() { return emailAddresses; } public void setEmailAddresses(List<String> emailAddresses) { this.emailAddresses = emailAddresses; } }
这个是一个典型的POJO了,其中引用了对象emailAddress,是一个List,那么下面演示各类用法:
先看默认的调用代码如下:
Java2Xml.java
package jaxb2;import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; public class Java2Xml { public static void main(String[] args) throws Exception { JAXBContext jc = JAXBContext.newInstance(Customer.class); Customer customer = new Customer(); customer.getEmailAddresses().add("example@example.com"); customer.getEmailAddresses().add("example@example.org"); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(customer, System.out); } }
默认的把这个对象输出为一般的XML:
下面逐一看每个注解的用法
1. @XmlElement
@XmlElement(name="email") private List<String> emailAddresses;
给emailAddresses属性加上这个注解的话,则按自定义的xml标签名去输出某个属性,如下:
2. @XmlElementWrapper
@XmlElementWrapper(name="emails") @XmlElement(name="email") private List<String> emailAddresses;
这个注解等于在最外面再包一层了, 输出:
3.@XmlList
@XmlList private List<String> emailAddresses;
这个等于是在同一行中,把list中的输出,以空格形式分隔开来, 输出:
4.@XmlList和 @XmlAttribute混合使用
@XmlList @XmlAttribute private List<String> emailAddresses;
作为customer的一个属性 ,输出:
5.@XmlList 和 @XmlValue混用
@XmlList @XmlValue private List<String> emailAddresses;
就是把emailAddress的list的值,作为<customer>
的value , 输出:
工程下载 (包括该文项目)
0 0
- JAXB中各种常见注解小结
- JAXB中各种常见注解小结
- JAXB中各种常见注解小结
- JAXB中各种常见注解小结
- JAXB注解使用小结
- 通过JAXB中常用注解
- JAXB注解
- jaxb注解
- JAXB注解
- jaxb注解
- JAXB注解
- JAXB注解
- JAXB注解
- JAXB 注解
- jaxb注解
- JAXB注解
- JAXB中主要的一些注解
- JAXB小结
- python的yield作用解析
- Linux批处理文件中的换行符问题
- jdbc连接错误 SQLException: The Network Adapter could not establish the connection
- ThinkPHP十三禁止翻墙访问
- Facebook SDK集成之登录篇
- JAXB中各种常见注解小结
- Node.js开发者必须了解的4个JS要点
- ScrollView嵌套ListView,GridView,ViewPager,以及这些控件自动滚动到底部问题的解决
- LinuxVFS文件系统缓存
- dd命令详解
- NAT穿透
- FastJson 使用详解
- 视频转换为GIF
- 程序员必看--23种设计模式及解释(中英文对照)——每天都要坚持看上几遍