本文共 3641 字,大约阅读时间需要 12 分钟。
xtream用于javabean和.xml文件之间的序列化与反序列化操作。下面是我自己做的相关练习,我把代码贴出来以供分享。
定义了三个类:Classes 班级类
Student 学生类
MapBean 用于单独测试map转成xml之后的xiaoguo
public class Classes { public Classes() { // TODO Auto-generated constructor stub } private String className; private Liststudents; public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public List getStudents() { return students; } public void setStudents(List students) { this.students = students; } @Override public String toString() { System.out.println(className); return className; } }
public class Student { private String name; private Integer age; public Student() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
public class MapBean { public MapBean() { // TODO Auto-generated constructor stub } private Mapservlet; private Map mapping; public Map getServlet() { return servlet; } public void setServlet(Map servlet) { this.servlet = servlet; } public Map getMapping() { return mapping; } public void setMapping(Map mapping) { this.mapping = mapping; } }
/** * 测试X-Stream的使用 * @author 杨承 * */public class MainClass { public static void main(String[] args){ mapToXml(); } public static void objToXml(){ XStream xStream=new XStream(new DomDriver()); xStream.alias("student", Student.class); xStream.alias("Classes", Classes.class); Student stu=new Student(); Student stu2=new Student(); stu.setName("校花"); stu.setAge(23); stu2.setName("校草"); stu2.setAge(23); Classes classes=new Classes(); Listlist=new ArrayList<>(); list.add(stu); list.add(stu2); classes.setClassName("班级一"); classes.setStudents(list); System.out.println(xStream.toXML(classes)); } public static void xmlToObj(){ XStream xStream=new XStream(new DomDriver());
xStream.alias("student", Student.class);
xStream.alias("Classes", Classes.class);
Classes classes=new Classes(); //文件存放在项目的根目录下 xStream.fromXML(new File("Classes.xml"), classes); classes.toString(); } public static void mapToXml(){ XStream xStream=new XStream(new DomDriver()); xStream.alias("root", MapBean.class); MapurlToName=new HashMap<>(); urlToName.put("/login", "login"); urlToName.put("/log", "login"); urlToName.put("/reg", "reg"); Map nameToObj=new HashMap<>(); nameToObj.put("login", "httpServer.demo3.LoginServlet"); nameToObj.put("reg", "httpServer.demo3.RegistServlet"); MapBean bean=new MapBean(); bean.setMapping(urlToName); bean.setServlet(nameToObj); System.out.println(xStream.toXML(bean)); }}
objToXml()的执行结果:
xmlToObj();执行结果:班级一(证明xml中的数据被封装到了);班级一 校花 23 校草 23
mapToXml();执行结果
reg httpServer.demo3.RegistServlet login httpServer.demo3.LoginServlet /login login /log login /reg reg
相关jar包下载地址:http://download.csdn.net/download/sinat_28771747/10268548
转载地址:http://escii.baihongyu.com/