public class ExportHtmlUtil {
private static Configuration cfg;
static{
cfg = new Configuration();
}
/**
* 通过freemark生成html文件
* @param rootPath 文件生成后保存路径
* @param templetName 模板名字 ftl 文件
* @param genFileName 生成文件名字
* @param listLecture 参数
* @return
*/
public static boolean genFileByFtl(String templetDir, String templetName ,String genFileName, List listParam ){
//取得工程classes的目录 作为ftl模板的目录
File dir = new File(ExportHtmlUtil.class.getClassLoader().getResource("/").getPath() );
Writer out = null;
try {
//加载模板存放目录
cfg.setDirectoryForTemplateLoading( dir );
//模板中传递参数
Map<String, Object> root = new HashMap<String, Object>();
root.put("listUser", listParam );
//Template t = cfg.getTemplate(ExportHtmlUtil.class.getClassLoader().getResource("/").getPath()+templetName );
Template t = cfg.getTemplate( templetName );
out = new OutputStreamWriter(new FileOutputStream( genFileName ), "UTF-8");
t.process(root, out);
out.flush();
out.close();
} catch ( Exception e) {
e.printStackTrace();
return false;
}finally{
try {
if(out!=null){
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return true;
}
}
---------------------------
public String downloadHtml() {
FileInputStream fis = null;
OutputStream os =null;
try {
listLectureNote = lectureMng.getOneLecture(videoId,innerCwareID ,versionP );
List list = new ArrayList();
User user = new User();
user.setId(1);
user.setName("123");
user.setRealname("小王");
user.setAge(24);
String path = this.getRequest().getRealPath("/");
ExportHtmlUtil.genFileByFtl(path ,"entity.ftl" , path+File.separator+"user.html" , list);
HttpServletResponse response = this.getResponse();
response.setContentType("application/x-download");//设置为下载application/x-download
response.addHeader("Content-Disposition","attachment;filename=user.html");
fis = new FileInputStream(new File(path+File.separator+"user.html" ));
os = this.getResponse().getOutputStream() ;
byte[] bs = new byte[1024];
int len;
while( (len = fis.read(bs, 0, bs.length ))!=-1){
os.write(bs , 0, len);
}
os.flush();
os.close();
fis.close();
} catch ( Exception e) {
e.printStackTrace();
}finally{
try {
if(os!=null){
os.close();
}
if(fis!=null){
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
---------------------------------------------------
<#list listUser as user>
${r"<!--"} NodeText(${user.id!""},${user.name!""},${user.age!""}); ${r"-->"}
${user.realname!""}
${r"<!--"} NodeTextEnd();${r"-->"}
</#list>
相关推荐
使用 Freemarker 模板引擎创建一个简单的 Spring 工程。
FreeMarker 是一个用Java语言编写的模板引擎,它基于模板输出文本。FreeMarker 与 Web 容器无关,即在Web运行时,它并不知道 Servlet 或 HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java ...
FreeMarker使用Macro实例,很好的学习资料。
freemarker使用手册 尚学堂教材
FreeMarker使用介绍 FreeMarker使用介绍
Freemarker使用,比较全面,有需要的可以看看
freemarker使用笔记,从创建文件到写法指导
Reference(FreeMarker 的参考文档,语言使用介绍) 中文翻译之所以选择 Programmer's Guide 是因为个人觉得该部分对如何实现 FreeMarker 进行了比较深入的阐述。有助于读者很好的了解其运作机制,以及去理解...
在开发web项目的时候使用到的页面展现技术,它并...总体,该文档能够提供所有常用的freemarker操作,示例和简略的讲解可以让人一下子就能上手,效率极高。 适合做快速查阅册子,同时也非常适合初学者和骨灰开发者使用。
freemarker的常用技巧:Hashes(散列)操作 Sequences(序列) 内置函数
freemarker常用使用文档......................................................................
Freemarker使用指南简要描述开发过程中涉及的指令, 集成模式等
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...
freemarker中文手册,加上了防止资源重复的字样,之前是别人分享来的但是需要积分,这个版的不用积分方便大家使用,主要用于分享,如侵权及时联系我删除,谢谢。
NULL 博文链接:https://chaoyi.iteye.com/blog/2171159
此文档是关于前端页面freemarker模板的使用说明,很适合freemarker初学者学习
freemarker操作手册-完整freemarker教程:完整的freemarker操作手册,对需要学习了解freemarker的人有一定帮助
采用freemarker技术、实现导出excel示例
FreeMarker设计指南.ppt
FreeMarker的入门以及使用指南,想要学习的同学,希望对你们有帮助。