`
wangfeiaini
  • 浏览: 54836 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

利用freemarker、java生成html静态页面

阅读更多

这几天在搞一个利用freemarker和java生成静态页面的东西,经过百度和自己的调试终于搞定,现在总结出核心代码分享。

 

/**
	 * 生成静态页面主方法
	 * 
	 * @param context
	 *            ServletContext
	 * @param data
	 *            一个Map的数据结果集
	 * @param templatePath
	 *            ftl模版路径
	 * @param targetHtmlPath
	 *            生成静态页面的路径
	 */
	public static void crateHTML(ServletContext context,
			Map<String, Object> data, String templatePath, String targetHtmlPath) {
		// 加载模版
		freemarkerCfg.setServletContextForTemplateLoading(context, "/");
		freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8");
		String filePath = ServletActionContext.getServletContext().getRealPath(
				"/static");
		File file = new File(filePath);
		if(!file.exists() || !file.isDirectory()){
			file.mkdir();
		}
		File f = new File(file,"/all_css");
		if(!f.exists() || !f.isDirectory()){
			f.mkdir();
		}
		try {
			freemarkerCfg.setDirectoryForTemplateLoading(new File(filePath));
			// 设置包装器,并将对象包装为数据模型
			freemarkerCfg.setObjectWrapper(new DefaultObjectWrapper());
			// 获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致
			// 否则会出现乱码
			Template template = freemarkerCfg
					.getTemplate(templatePath, "UTF-8");
			template.setEncoding("UTF-8");
			// 静态页面路径
			String htmlPath = filePath + "/" + 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();
		}
		
	}

	/**
	 * 生成友情链接的静态页cuxiao.html
	 * 
	 * @param context
	 * @param data
	 */
	public static void createIndexFriendLink(ServletContext context,
			Map<String, Object> data) {
		try {
		//cuxiao.ftl是项目中建立的ftl文件,cuxiao.html是生成的静态页面名
			return crateHTML(context, data, "/cuxiao.ftl", "cuxiao.html");
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
 

   最后调用方法,private Map<String, Object> pList = new HashMap<String, Object>();

List list = new ArrayList();
pList.put("list",list);
HttpServletRequest request = ServletActionContext.getRequest();
			pList.put("JspTaglibs", new TaglibFactory(request.getSession()
					.getServletContext()));
			 this.createIndexFriendLink(
					ServletActionContext.getServletContext(), pList);
//页面介绍map时一定要与pList中的key一致
 

 

分享到:
评论

相关推荐

    javaCMS 生成静态页面简单列子

    Java CMS(内容管理系统)生成静态页面是一种常见的优化网站性能和提升用户体验的方法。在这个过程中,原本由动态脚本生成的网页内容被转化为HTML文件,这些HTML文件可以被浏览器直接读取,减少了服务器处理请求的...

    FreeMarker教你如何生成html静态页面源码

    7. **部署和维护**:生成的静态HTML页面可以部署到Web服务器上,供用户访问。由于它们不涉及服务器端的动态处理,所以性能往往更好。同时,由于数据和显示分离,更新内容时只需修改数据模型,无需触碰HTML,降低了...

    用java代码生成静态页面

    Java生成静态页面的基本原理 Java生成静态页面的核心在于能够将HTML格式的字符串写入到文件系统中。这里的重点包括如何创建文件、写入内容以及关闭流等操作。在上述提供的部分代码中,已经涵盖了这些基本的操作...

    html.rar_html页面_java 静态模板_java 静态页面_java生成html_静态页面

    3. **Java_静态页面**:Java可以用于生成静态HTML页面,通常是通过后端处理数据,然后将结果写入到HTML文件中。这种做法在需要大量静态内容且不需要动态交互的场景下非常有效,因为它减少了服务器的计算负担和数据库...

    使用FreeMarker生成Html静态文件

    5. **静态文件生成**: 渲染后的HTML内容可以写入到文件系统,生成静态HTML文件。这样,Web服务器可以直接返回这些静态文件,提高网站的访问速度。 6. **优化与调试**: FreeMarker支持缓存机制,可以提高模板的加载...

    生成静态页面 freemarker模板

    在生成静态页面的场景中,Struts2可以作为数据和模板之间的桥梁,将处理后的业务数据传递给Freemarker,由Freemarker生成静态HTML。 **生成静态页面的流程** 1. **配置Struts2**: 首先,我们需要在Struts2的配置...

    java生成静态页面的思路

    要使用Java生成静态页面,我们通常需要以下步骤: 1. **数据获取**:首先,我们需要获取用于生成页面的数据。这可能来自于数据库、API接口、文件或任何其他数据源。Java提供了丰富的库,如JDBC用于数据库操作,或者...

    java解决网站静态页面生成方案(源码)

    `CreatorHtmlServlet`可能是这样一个Servlet,当接收到请求时,它会根据请求参数生成静态HTML。 2. **HTML渲染**: 源码可能包含了HTML模板引擎,如FreeMarker或Velocity,这些模板引擎允许将Java对象的数据绑定到...

    通过freemarker模板 生成PDF

    **Freemarker模板** 是一个强大的Java模板引擎,用于动态生成文本输出,如HTML、XML或PDF。它支持变量替换、控制结构(如if/else)和复杂的逻辑,使得开发者能以模板语言编写静态部分,而动态数据则由程序在运行时...

    freemarker生成静态html示例

    本示例项目是在Eclipse环境中创建的一个工程,目的是演示如何使用Freemarker来生成静态HTML页面。 在了解这个项目之前,首先需要知道什么是Freemarker。Freemarker是一个开源的Java库,它允许开发者通过定义模板(....

    教你如何用FreeMarker生成静态页面.doc

    本篇文章将详细讲解如何利用FreeMarker来生成静态页面。 首先,我们需要理解FreeMarker的基本工作原理。在FreeMarker模板文件中,我们可以编写HTML结构,同时嵌入特定的FreeMarker语法,如`&lt;#if&gt;`、`&lt;#foreach&gt;`等...

    test_static_html:java生成静态HTML

    标题“test_static_html:java生成静态HTML”暗示了这是一个关于使用Java编程语言生成静态HTML页面的主题。在IT领域,静态HTML是指不包含服务器端脚本的网页,它们的内容在发送到浏览器时不会改变。这样的页面通常...

    springboot整合freemarker生成静态html的demo.zip

    在本项目"springboot整合freemarker生成静态html的demo.zip"中,我们将探讨如何将SpringBoot框架与FreeMarker模板引擎结合,以实现动态数据驱动的静态HTML页面生成。FreeMarker是一个强大的、开源的模板语言,它允许...

    java生成静态页面——Freemarker实例教程.docx

    ### Java生成静态页面——Freemarker实例教程 #### 一、Freemarker简介 Freemarker是一款基于模板的通用工具,它可以嵌入到各种应用程序中,帮助开发者将动态数据渲染成HTML、XML或其他文本格式的文件。对于提高...

    freemarker生成静态页面------内含使用说明

    本篇文章将深入探讨Freemarker的工作原理、配置、语法以及在生成静态页面中的应用。 一、Freemarker的工作原理 Freemarker是一个基于Java的模板语言,它与后端服务器通过模板引擎进行交互。当用户请求页面时,...

    java自动生成静态页面Demo源码

    Java 自动生成静态页面技术是一种将动态网站内容转化为静态HTML页面的方法,这有助于提高网站的访问速度和搜索引擎优化。在本示例中,"java自动生成静态页面Demo源码" 提供了一个完整的实现,包括源代码和可能使用的...

    struts2+freemarker 生成静态页面

    在本项目中,“struts2+freemarker 生成静态页面”意味着利用这两个工具将动态网页转化为静态HTML页面,以提高网站性能和用户体验。 1. **Struts2框架**:Struts2提供了全面的MVC架构支持,包括动作(Action)类、...

    Java 生成静态页

    总的来说,Java生成静态页是一个涉及到前端模板、后端逻辑、文件系统操作、网络协议、性能优化和安全等多个领域的综合实践。正确实施这一技术,能够显著提升网站的响应速度和可扩展性,提供更好的用户体验。

    网站生成静态页面的方案和工具

    例如,Jekyll允许配置FreeMarker作为其模板引擎,这样就能利用FreeMarker的灵活性和表达力来创建复杂的页面结构。 总结,网站生成静态页面是一个有效的优化手段,通过选用合适的工具和方法,结合FreeMarker模板引擎...

Global site tag (gtag.js) - Google Analytics