博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经FreeMarkerclasspath加载方式生成静态页面
阅读量:4578 次
发布时间:2019-06-08

本文共 4329 字,大约阅读时间需要 14 分钟。

package htmlskin;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.Calendar;import java.util.HashMap;import java.util.Map;import java.util.Random;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;public class FreeMarkerTest {		private Configuration cfg;// FreeMarker配置实例		public static void main(String[] args) {		FreeMarkerTest test = new FreeMarkerTest();				Map
root = new HashMap
(); root.put("message", "Hello FreeMarker."); String ftl = "/ftl/test.ftl"; boolean flag = test.genericHtmlFile(ftl, root); if(flag){ System.out.println("创建静态HTML页面成功!"); }else{ System.out.println("创建静态HTML页面失败!"); } } /** * 获取FreeMarker配置实例 * @return */ public Configuration getConfiguration() { if (null == cfg) { cfg = new Configuration(); //通过classpath载入方式 cfg.setClassForTemplateLoading(this.getClass(), "/htmlskin"); } return cfg; } /** * 生成HTML页面 * @param ftl FreeMarker模版文件 * @param root 模版数据 * @return true->生成静态页面成功 false->生成静态页面失败 */ public boolean genericHtmlFile(String ftl, Map
root) { try { Template template = getConfiguration().getTemplate(ftl); String projectPath = System.getProperty("user.dir"); String htmlPath = projectPath + File.separator + "html"; String path = createDirs(htmlPath, genericFilePath()); String name = genericFileName(); // System.out.println(path+name); File file = new File(path + name); Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(file))); template.process(root, out); } catch (FileNotFoundException e) { return false; } catch (IOException e) { return false; } catch (TemplateException e) { return false; } return true; } /** * 生成存储文件子路径 * 格式:\yyyy\MM\dd\ * @return 文件子路径 */ public String genericFilePath() { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR);// 年 int month = calendar.get(Calendar.MONTH);// 月 int day = calendar.get(Calendar.DAY_OF_MONTH);// 日 String year_str = ""; String month_str = ""; String day_str = ""; year_str = String.valueOf(year); month_str = month < 10 ?

"0" + month : month + ""; day_str = day < 10 ? "0" + day : day + ""; // 拼接子路径 StringBuffer sb = new StringBuffer(); sb.append(File.separator); sb.append(year_str); sb.append(File.separator); sb.append(month_str); sb.append(File.separator); sb.append(day_str); sb.append(File.separator); return sb.toString(); } /** * 生成文件名 * 格式:yyyyMMddHHmmss4位随机数 * @return 文件名 */ public String genericFileName() { //创建日历类 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR);//年 int month = calendar.get(Calendar.MONTH);//月 int day = calendar.get(Calendar.DAY_OF_MONTH);//日 int hour = calendar.get(Calendar.HOUR_OF_DAY);//时 int minus = calendar.get(Calendar.MINUTE);//分 int second = calendar.get(Calendar.SECOND);//秒 //创建生成随机数类 Random random = new Random(); String year_str = year + ""; String month_str = month < 10 ?

"0" + month : month + ""; String day_str = day < 10 ? "0" + day : day + ""; String hour_str = hour < 10 ? "0" + hour : hour + ""; String minus_str = minus < 10 ? "0" + minus : minus + ""; String second_str = second < 10 ? "0" + second : second + ""; // System.out.println("year=" + year + ",month=" + month + ",day=" + day // + ",hour=" + hour + ",minus=" + minus + ",second=" + second); StringBuffer sb = new StringBuffer(); sb.append(year_str); sb.append(month_str); sb.append(day_str); sb.append(hour_str); sb.append(minus_str); sb.append(second_str); sb.append(random.nextInt(8999) + 1000); return sb.toString() + ".html"; } /** * 创建文件夹 * @param parentDir 父文件夹 * @param subDir 子文件夹 * @return 存储文件全文件夹 */ public String createDirs(String parentDir, String subDir) { //System.out.println("父文件夹:" + parentDir); //System.out.println("子文件夹:" + parentDir + subDir); String path = parentDir + subDir; File parentFile = new File(parentDir); if (parentFile.exists()) { File subFile = new File(path); if (!subFile.exists()) { subFile.mkdirs(); } } return path; } }

版权声明:本文博主原创文章。博客,未经同意不得转载。

转载于:https://www.cnblogs.com/zfyouxi/p/4849436.html

你可能感兴趣的文章
寒冬夜行人
查看>>
poj1151 Atlantis
查看>>
HTML页面之间的参数传递
查看>>
java面试题集锦
查看>>
scikit-learn:4.2.3. Text feature extraction
查看>>
Spring Security构建Rest服务-0800-Spring Security图片验证码
查看>>
AE待整理
查看>>
java8中规范的四大函数式接口
查看>>
宝塔apache配置
查看>>
shell脚本中使用nohup执行命令不生效
查看>>
PHP 文件上传七牛云
查看>>
ZT:Unity与C++之间进行socket通信
查看>>
Ural 1517. Freedom of Choice 后缀数组
查看>>
【转载】Maven入门实践
查看>>
1-4-03:奇偶数判断
查看>>
【SQL Server备份恢复】提高SQL Server备份速度
查看>>
命令行简介(附加参考资料)
查看>>
从0开始整合SSM框架-1.mybatis
查看>>
移位操作的疑问
查看>>
UILabel常用属性小结
查看>>