如何编写freemarker文件

如何编写freemarker文件,第1张

将要导出的Word另存为xml格式的文件,打开xml 在其中添加freemarker标签,然后另存为outChairDoc.ftl文件.

第一步要加入Freemarker.jar包。

Servlet代码如下:在outChairDoc.ftl放在包cn.skyclass.jiaowu.freemarker.template下

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

configuration = new Configuration()

configuration.setDefaultEncoding("utf-8")

try {

createDoc(response)

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

public void createDoc(HttpServletResponse response) throws Exception {

// 要填入模本的数据文件

Map dataMap = new HashMap()

dataMap.put("docTitle", "fdfdfdfdfdfdf用户信息")

List<ChairInfo>list = new ArrayList<ChairInfo>()

ChairInfo chairInfo = new ChairInfo()

chairInfo.setChairTitle("dfdfd")

chairInfo.setTeacherName("tea")

chairInfo.setStartTime(new Date())

chairInfo.setPlace("dfdfd")

list.add(chairInfo)

dataMap.put("chairInfoList", list)

// 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,

// 这里我们的模板是放在com.havenliu.document.template包下面

configuration.setClassForTemplateLoading(this.getClass(),

"/cn/skyclass/jiaowu/freemarker/template")

Template t = null

try {

// test.ftl为要装载的模板

t = configuration.getTemplate("outChairDoc.ftl")

t.setEncoding("utf-8")

} catch (IOException e) {

e.printStackTrace()

}

// 输出文档路径及名称

String fileName="讲座列表.doc"

response.setContentType("application/msword")

response.addHeader("Content-Disposition", "attachmentfilename=" + java.net.URLEncoder.encode(fileName, "UTF-8"))//可防止导出的文件乱码

response.setCharacterEncoding("utf-8")

PrintWriter out = response.getWriter()

t.process(dataMap, out)

out.close()

}

将要导出的Word另存为xml格式的文件,打开xml在其中添加freemarker标签,然后另存为outChairDoc.ftl文件.第一步要加入Freemarker.jar包。Servlet代码如下:在outChairDoc.ftl放在包cn.skyclass.jiaowu.freemarker.template下publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{configuration=newConfiguration()configuration.setDefaultEncoding("utf-8")try{createDoc(response)}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace()}}publicvoidcreateDoc(HttpServletResponseresponse)throwsException{//要填入模本的数据文件MapdataMap=newHashMap()dataMap.put("docTitle","fdfdfdfdfdfdf用户信息")Listlist=newArrayList()ChairInfochairInfo=newChairInfo()chairInfo.setChairTitle("dfdfd")chairInfo.setTeacherName("tea")chairInfo.setStartTime(newDate())chairInfo.setPlace("dfdfd")list.add(chairInfo)dataMap.put("chairInfoList",list)//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,//这里我们的模板是放在com.havenliu.document.template包下面configuration.setClassForTemplateLoading(this.getClass(),"/cn/skyclass/jiaowu/freemarker/template")Templatet=nulltry{//test.ftl为要装载的模板t=configuration.getTemplate("outChairDoc.ftl")t.setEncoding("utf-8")}catch(IOExceptione){e.printStackTrace()}//输出文档路径及名称StringfileName="讲座列表.doc"response.setContentType("application/msword")response.addHeader("Content-Disposition","attachmentfilename="+java.net.URLEncoder.encode(fileName,"UTF-8"))//可防止导出的文件乱码response.setCharacterEncoding("utf-8")PrintWriterout=response.getWriter()t.process(dataMap,out)out.close()}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9988296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存