前言:根据前面上一节的项目工程,我们继续实现如何使用JAVA对象转换成XML格式文件

 

一、 总体说明

XML和JSON 是最为常用的数据交换格式。本例子演示如何将JAVA对象,转成XML输出。

二、流程

1.在上文的工程例子中,创建一个包“cn.itrush.rest.bean”

2.在该包下创建一个JAVA类"User.java"

 1 package cn.itrush.rest.bean;  
 2 import javax.xml.bind.annotation.XmlRootElement;  
 3 
 4 /** 
 5  * 回嘉
 6  * @author huiqinbo.cn
 7  * 2016-8-24
 8  */
 9 @XmlRootElement  
10 public class User {  
11       
12     private String userId;  
13     private String userName;  
14     private String age;  
15       
16     public User() {};  
17       
18     public User(String userId, String userName, String age) {  
19         this.userId = userId;  
20         this.userName = userName;  
21         this.age = age;  
22     }  
23     public String getUserId() {  
24         return userId;  
25     }  
26     public void setUserId(String userId) {  
27         this.userId = userId;  
28     }  
29     public String getUserName() {  
30         return userName;  
31     }  
32     public void setUserName(String userName) {  
33         this.userName = userName;  
34     }  
35     public String getAge() {  
36         return age;  
37     }  
38     public void setAge(String age) {  
39         this.age = age;  
40     }  
41 }  

 

注意:该类上面增加了一个注解“@XmlRootElement”,再将该类转化成XML时,说明这个是XML的根节点。

 

3.在“cn.itrush.rest.resources”中,增加资源“UserResource.java“,代码如下:

 1 package cn.itrush.rest.resources;  
 2   
 3 import java.util.ArrayList;  
 4 import java.util.HashMap;  
 5 import java.util.List;  
 6 import java.util.Map;  
 7   
 8 import javax.ws.rs.Path;  
 9 import javax.ws.rs.Produces;  
10 import javax.ws.rs.PathParam;  
11 import javax.ws.rs.core.MediaType;  
12 import javax.ws.rs.DELETE;  
13 import javax.ws.rs.GET;  
14 import javax.ws.rs.POST;  
15 import javax.ws.rs.PUT;  
16   
17 import cn.itrush.rest.bean.User;
18 
19 /** 
20  * 回嘉
21  * @author huiqinbo.cn
22  * 2016-8-24
23  */  
24 
25 @Path("/users")  
26 public class UserResource {  
27     private static Map<String,User> userMap = new HashMap<String,User>();//�洢�û�  
28      
29     /** 
30      * 返回多节点XML格式文件
31      * @return 
32      */
33     @GET  
34     @Produces(MediaType.APPLICATION_XML)  
35     public List<User> getAllUsers(){       
36         List<User> users = new ArrayList<User>();  
37         User u1 = new User("001","HuiJia","26");  
38         User u2 = new User("002","Andy","23");  
39         User u3 = new User("003","BoWen","21");  
40           
41         userMap.put(u1.getUserId(), u1);  
42         userMap.put(u2.getUserId(), u2);  
43         userMap.put(u3.getUserId(), u3);  
44           
45         users.addAll( userMap.values() );  
46         return users;  
47     }  
48     
49     
50     /** 
51      * 返回单节点XML格式文件
52      * @return 
53      */
54     @GET  
55     @Path("/getUserXml")  
56     @Produces(MediaType.APPLICATION_XML)  
57     public User getUserXml() {  
58      User user  = new User();  
59      user.setAge("21");  
60      user.setUserId("004");  
61      user.setUserName("回嘉");  
62      return user;  
63     }  
64     
65     /** 
66      * 返回单节点Json格式文件
67      * @return 
68      */
69     @GET
70     @Path("/getUserJson")
71     @Produces(MediaType.APPLICATION_JSON)
72     public User getUserJson(){
73         User user = new User();
74         user.setAge("30");
75         user.setUserId("2");
76         user.setUserName("回嘉");
77         return user;
78     }
79    
80      
81 }  

注意:MediaType.APPLICATION_XML 说明了是以XML形式输出

 

在浏览器输入http://localhost:8080/RestDemo/rest/users/getUserXml,输出单个对象

 

在浏览器输入http://localhost:8080/RestDemo/rest/users   输出对象的集合

 

 

 

 参考文献:http://blog.csdn.net/kkkloveyou/article/details/21415735

 

posted on 2016-08-24 09:31  回嘉  阅读(1265)  评论(0编辑  收藏  举报