package com.nomen.ntrain.base.util;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Map;
import javax.servlet.ServletContext;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.views.freemarker.FreemarkerManager;
import com.nomen.ntrain.util.SpringBeanUtils;
import freemarker.template.Configuration;
import freemarker.template.Template;
/**
* 工具类 - HTML静态文件生成
* ============================================================================
*/
public class HtmlUtil {
private SpringBeanUtils springBeanUtils;
/**
* 根据ftl模板文件路径、生成HTML文件路径、Map数据生成HTML文件
*
* @param ftlPath
* ftl模板文件路径
*
* @param htmlPath
* 生成HTML文件路径
*
* @param data
* Map数据
*
*/
public void build(String ftlPath, String htmlPath, Map<String, Object> data) {
ServletContext servletContext = ServletActionContext.getServletContext();
FreemarkerManager freemarkerManager = (FreemarkerManager)springBeanUtils.getBean("freemarkerManager");
try {
Configuration freemarkerCfg = freemarkerManager.getConfiguration(servletContext);
Template template = freemarkerCfg.getTemplate(ftlPath);
String htmlDirectory = StringUtils.substringBeforeLast(htmlPath, "/");
String htmlName = StringUtils.substringAfterLast(htmlPath, "/");
File realDirectory = new File(servletContext.getRealPath(htmlDirectory));
if (!realDirectory.exists()) {
realDirectory.mkdirs();
}
File htmlFile = new File(realDirectory + "/" + htmlName);
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile), "GBK"));
//System.out.println(realDirectory);
//ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle("i18n");
//ResourceBundleModel rsbm = new ResourceBundleModel(RESOURCE_BUNDLE, new BeansWrapper());
data.put("bundle", null);
data.put("base", servletContext.getServletContextName());
template.process(data, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根据File对象、过期时间删除所有过期文件
*
*/
public static void deleteExpirationFile(File file, long expirationTime) {
File[] fileArray = file.listFiles();
for (File f : fileArray) {
if (f.isFile()) {
Long lastModifiedTime = f.lastModified();
if (lastModifiedTime < expirationTime) {
f.delete();
}
} else if (f.isDirectory()) {
deleteExpirationFile(f, expirationTime);
}
}
}
public SpringBeanUtils getSpringBeanUtils() {
return springBeanUtils;
}
public void setSpringBeanUtils(SpringBeanUtils springBeanUtils) {
this.springBeanUtils = springBeanUtils;
}
}
分享到:
相关推荐
PHP静态文件生成类 使用方法如下: <?php $s=new CreateHtml(); $s->start(); ?> <html> <body> asdfasdfasdfasdfasdfasdfasdfasdfasdf adfasdfasdf ...
标题“PHP静态文件生成类库”暗示我们要讨论的是一个专门用于创建静态HTML页面的PHP类库。这种类库的主要作用是将动态内容转换为静态文件,以便于后续的快速访问。这在内容管理系统(CMS)、博客平台或任何需要频繁...
在PHP开发中,生成静态文件,尤其是HTML文件,是一种常见的优化网站性能的技术。这主要得益于静态HTML文件可以被浏览器直接缓存,减少服务器处理请求的压力,同时提高页面加载速度。本篇文章将深入探讨如何利用PHP的...
在实际应用中,还可以结合其他技术,如Memcached或Redis等缓存系统,以及Apache的mod_rewrite模块来实现更高效的静态文件生成和路由处理。通过合理的缓存策略,可以有效减少数据库查询,减轻服务器负担,使网站运行...
在标题提及的“静态文件生成根目录下首页插入.zip”中,我们可以推测这是一款帮助用户自动生成网站静态HTML文件的软件,特别针对首页进行优化,使得搜索引擎更容易抓取和理解页面内容。 SEO(Search Engine ...
HTML静态页面生成是一种常见的Web开发技术,主要用于提升网站的加载速度和SEO优化。在.NET框架下,我们可以利用各种工具和方法来实现这一功能。本文将深入探讨如何通过.NET后台批量生成静态HTML页面,并讨论其重要性...
标题“使用FreeMarker生成Html静态文件”暗示了我们将探讨如何利用FreeMarker将动态数据转化为静态的HTML页面。这一过程通常涉及以下几个步骤: 1. **配置FreeMarker**: 首先,我们需要在Java项目中引入FreeMarker...
`ConsoleApplication1`可能是C#的控制台应用项目,可能用于实现上述的静态文件生成逻辑。 总的来说,生成静态文件是一个涉及数据提取、模板渲染和文件操作的过程,常用于优化网站性能。在实际开发中,可以结合自动...
BBSGood提供的通用HTML静态文件生成器。 使用说明: 该程序使用方便,修改配置上传后,可立即使用。 该程序能将目标的动态访问地址生成HTML文件,从而提高访问速度,对于目前还在以如index.asp的动态页面为首页的...
- 存储和部署:生成的静态HTML文件需要保存到服务器的某个目录,并配置Web服务器以正确服务这些文件。 5. **实际应用** - 新闻系统:发布新闻时,动态生成对应的静态HTML页面,方便用户快速访问和搜索引擎收录。 ...
以前发布过过asp生成静态文件的,那是用模板替换的方法实现的, 今天这个是用XMLHttp的方法来实现的,页面很简单,直接执行html.asp文件就可以了, 再次强调这只是个方法,不是完整的ASp生成html的网站,是供网友...
总结来说,C#生成HTML静态页面主要涉及到ASP.NET框架、服务器端代码(.cs文件)和配置文件(Web.Config)的使用。通过理解和调整这些文件,你可以实现自定义的HTML生成逻辑,满足各种项目需求。这个示例提供了一个...
chrome浏览器打开axure生成的HTML静态文件页面 已升级manifest version 3版本 第一步:解压得到一个axure-chrome-extension的文件夹。 第二步:打开Google浏览器,在地址栏中输入chrome://extensions/ 或者右上角...
静态文件生成类就是帮助我们把动态生成的内容转化为这种静态HTML文件的工具。 下面我们将详细讲解PHP实现静态文件生成类的基本步骤: 1. **定义类结构**:首先,我们需要创建一个PHP类,比如命名为`...
如果URL带有`page`参数,比如`phpfans.php?page=1`,则会生成带有页码后缀的静态文件`phpfans_1.html`。 总结起来,PHP静态页面生成的核心步骤包括: 1. 开启输出缓冲区。 2. 执行需要生成静态页面的PHP代码。 3. ...
这种方法允许你在生成静态文件时保持页面的动态特性,但需要对XMLHTTP对象有深入理解。 ```asp '... Set objHTTP = Server.CreateObject("Msxml2.XMLHTTP") objHTTP.Open "GET", ...
【C#生成静态HTML】是一种常见的技术,常用于构建网站或者将动态内容转换为静态页面,提高网站的访问速度和SEO优化。C#是微软公司推出的面向对象的编程语言,它具有丰富的类库和强大的功能,非常适合进行Web开发。在...
在.NET框架中,生成静态HTML文件是常见的需求,特别是在构建网站、博客系统或者API文档时。...对于大型项目,可能需要结合构建工具(如MSBuild或dotnet CLI)和自动化流程来批量生成和部署静态文件。
将动态的数据页面生成特定名称指定目录下的html等其他类型的静态页面
2. **在线批量生成**:描述中提到可以“一键生成整站html静态页”,这意味着这个程序提供了批量处理功能,用户只需访问一个ASP页面就能触发整个网站的静态化过程,大大提高了效率。 3. **代码实现**:尽管没有提供...