日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FreeMarker入门 生成xml模板

發(fā)布時(shí)間:2024/1/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeMarker入门 生成xml模板 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一次寫這個,只是按著自己想的來寫,沒有什么思路。。。。

https://blog.csdn.net/kangcool_sn/article/details/85096386

?

先建一個Person對象,也可以不用,只是為了封裝數(shù)據(jù)好處理

?

public class Person { private String name; private String age; private String birthday; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }

?

?

?

?

?

?

?

?

?

?

創(chuàng)建工具類 ?這邊把測試方法寫在工具類中了,可以分離出去

?

?

import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class ObjectToXmlUtil { /** * * @param xmlPath xml的路徑 * @param xmlName xml的名稱* @param code 數(shù)據(jù)編碼格式 * @param dataMap 需要渲染到xml中的map數(shù)據(jù) * @return xmlString*/ public String createXmlFile(String xmlPath,String xmlName,String code, Map dataMap) { String result = ""; //得FreeMarker配置對象// 創(chuàng)建Configuration對象 Configuration cfg = new Configuration(); //設(shè)置模板編碼格式cfg.setEncoding(Locale.getDefault(),code); //得FreeMarker的關(guān)鍵對象---------模板 // 創(chuàng)建Template對象 Template template = null; try { // 設(shè)置FreeMarker的模版文件位置 cfg.setClassForTemplateLoading(this.getClass(),"");//cfg.setDirectoryForTemplateLoading(new File(xmlPath));template = cfg.getTemplate(xmlName); } catch (IOException e1) { e1.printStackTrace(); } template.setEncoding(code); //String path = ServletActionContext.getServletContext().getRealPath("/"); /* File dir = new File(path + htmlPath); if (!dir.exists()) { dir.mkdirs(); } */ // File fileName = new java.io.File(path + htmlPath + htmlName); //System.out.println("html file:" + fileName.getPath()); //Writer writer = null; java.io.StringWriter w =new StringWriter(); try { // 生成xmltemplate.process(dataMap, w); System.out.println(w.toString()); result = w.toString(); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; } public static void main(String args[]){ObjectToXmlUtil t = new ObjectToXmlUtil();Map map =t.demo();t.createXmlFile("","Person.xml","gbk", map);}private Map demo(){Person p =new Person();p.setName("李四");p.setAge("12");p.setBirthday("20161201");p.setSex("Y");Map map = new HashMap();map.put("t", p); return map;}}

?

?

?

創(chuàng)建自己要生成的xml模板樣式,將數(shù)據(jù)寫過來

?

?

<?xml version="1.0" encoding="gbk"?> <root id="" comment=""><person><name>${t.name}</name><age>${t.age}</age><birthday>${t.birthday}</birthday><sex>${t.sex}</sex></person> </root>

?

?


最后輸出結(jié)果,轉(zhuǎn)成你想要的xml文件即可:

?

?

?

?

?

<?xml version="1.0" encoding="gbk"?> <root id="" comment=""><person><name>李四</name><age>12</age><birthday>20161201</birthday><sex>Y</sex></person> </root>

?

?

?

xml模板中帶有多條的同樣處理方法

以上純屬一個小白的一點(diǎn)心得,勿噴

https://blog.csdn.net/kangcool_sn/article/details/85069434

?

總結(jié)

以上是生活随笔為你收集整理的FreeMarker入门 生成xml模板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。