freemarker生成静态页、获取指定文件内容

package com.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Locale;
import java.util.Map;

import javax.servlet.ServletContext;

import freemarker.template.Configuration;
import freemarker.template.Template;

public class InitHtml {
/* 生成静态页面主方法
* @param context ServletContext
* @param data 一个Map的数据结果集
* @param templatePath ftl模版路径
* @param targetHtmlPath 生成静态页面的路径
* String templatePath : ftl所在的路径。这里相对于网站的一个相对路径然后通过ServerContext获取绝对路径。
* String targetHtmlPath : 最后生成静态页的路径:这里相对于网站的一个相对路径然后通过ServerContext获取绝对路径。
*/
public static void crateHTML(ServletContext context,Map<String,Object> data,String templatePath,String targetHtmlPath){
Configuration freemarkerCfg = new Configuration();
//加载模版
freemarkerCfg.setServletContextForTemplateLoading(context, "/");
freemarkerCfg.setEncoding(Locale.CHINA, "utf-8");

try {
//指定模版路径
Template template = freemarkerCfg.getTemplate(templatePath,"UTF-8");
template.setEncoding("UTF-8");
//静态页面路径
String htmlPath = context.getRealPath("/html")+"/"+targetHtmlPath;
File htmlFile = new File(htmlPath);
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile), "UTF-8"));
//处理模版
template.process(data, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @author wwd
* @Title: getHtml
* @Description: 获取index.html文件内容
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
public static String getHtml(){
//获取当前项目根路径
String filePath = InitHtml.class.getClassLoader().getResource("").getPath().split("WEB-INF")[0];
//获取当前项目根路径下的html文件
String fileHtml = filePath+"html/index.html";
//读取文件类容
int lenght = 0;
StringBuffer buffer = new StringBuffer();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileHtml),"UTF-8"));
while((lenght = br.read()) > -1){
buffer.append((char)lenght);
}
br.close();

} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值