`
sfeve
  • 浏览: 42536 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

用freemarker生成html小例子

    博客分类:
  • Java
阅读更多

同学接到一个做网站美工的小项目,没有逻辑处理的页面和数据库操作,这样对于我们这种程序研发人员反而还比较棘手。。

 

上网搜了一下有没有偷懒的方法,发现了freemarker。。可以根据java代码生成html文件的好东东。

 

二话不说,下载源代码。freemarker-2.3.16.tar.gz,下了这个最新的版本。解压后,有了需要的jar包-------freemarker.jar。

 

先来看个小例子吧!在源码的examples文件里,找到一个模板文件Test.ftl。拷出来修改其为以下内容:

 

<#macro greet person,website>
   Hello ${person}! Your Website is ${website}.
</#macro> 
  
<html>   
<head>   
<title>Hello World</title>
</head> 
  
<body>   
<@greet person="Sfeve" website="http://sfeve.iteye.com"/>   
</body>   
</html> 

 

 大家随便一看应该就能明白个八九成吧。。。

 

再写个Main函数测试一下!

 

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

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

public class Test {
	public static void main(String[] args) throws Exception {
		Configuration cfg = new Configuration();
		
		cfg.setDirectoryForTemplateLoading(new File("bin"));  //设置读取模板文件的目录
		
		Template t = cfg.getTemplate("Test.ftl");  //读取文件名为Test.ftl的模板
		
		Map root = new HashMap();  //存储数据
		
		Writer out = new OutputStreamWriter(new FileOutputStream(
				"Test.html"), "GBK");  //输出流
		
		t.process(root, out); //动态加载root中的数据到Test.html。数据在模板中定义好了。
		
		System.out.println("Create successfully!");
	}
}

 

运行,即在当前文件目录下生成了名为Test.html的文件,其代码如下:

 

 

<html>   
<head>   
<title>Hello World</title>
</head> 
  
<body>   
   Hello Sfeve! Your Website is http://sfeve.iteye.com.   
</body>   
</html> 

 

很爽吧,更多精彩功能有待发掘。。。

 

PS:模板文件(这里是Test.ftl)一定要放到测试函数指定的目录里哦!否则会报找不到文件的异常。附件是源码和MyEclipse的freemarker插件。插件的使用方法就不磨叽了~

分享到:
评论
7 楼 awdxzc 2011-03-11  
crazy84241167 写道
不错 不错。
请问楼主 frremarker语句里可以有HTML代码?

freemarker就是一个页面模板,肯定可以嵌入html代码啊
6 楼 crazy84241167 2011-03-11  
不错 不错。
请问楼主 frremarker语句里可以有HTML代码?
5 楼 wuyakenihao 2010-11-02  
这个在我们网站经常用到,要是是对一些,长时间查询一次数据库,和不常变化的页面用TA生成。
4 楼 sfeve 2010-11-01  
bluemusic 写道
不错就是东西太少了点
freemarker做html的成品网站可参阅http://www.ibaodian.cn/
希望看到LZ下次作品

3 楼 sfeve 2010-11-01  
robinjim 写道
   楼主这个例子的使用场景是怎么样的,仅仅是生产html?
    个人觉得freemarker在生成html方面比较有价值的是模板功能,比如web界面换模板和换皮肤功能,以前struts1.1因为没有和freemarker结合,还需要配置servlet支持freemarker。struts2已经内置了freemarker,我们可以用ftl取代jsp页面,这样可以把前台页面和模板功能放心的交给ui。最好ui有些jsp的知识,能使用标签,这样开发人员的工作量会小很多。

呵呵,我只是随便玩一下。还没有投入使用哦 : 谢谢您的回复
2 楼 robinjim 2010-11-01  
   楼主这个例子的使用场景是怎么样的,仅仅是生产html?
    个人觉得freemarker在生成html方面比较有价值的是模板功能,比如web界面换模板和换皮肤功能,以前struts1.1因为没有和freemarker结合,还需要配置servlet支持freemarker。struts2已经内置了freemarker,我们可以用ftl取代jsp页面,这样可以把前台页面和模板功能放心的交给ui。最好ui有些jsp的知识,能使用标签,这样开发人员的工作量会小很多。
1 楼 bluemusic 2010-11-01  
不错就是东西太少了点
freemarker做html的成品网站可参阅http://www.ibaodian.cn/
希望看到LZ下次作品

相关推荐

    freeMarker生成html实用例子

    freeMarker生成html实用例子

    freemarker生成静态HTML例子

    freemarker生成静态HTML例子

    实用方便freemarker.jar freemarker架包 freemarker生成excel、word、html、xml例子

    freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子freemarker生成excel、word、html、xml简单例子

    freemarker.jar freemarker架包 freemarker生成excel、word、html、xml简单例子

    freemarker生成excel、word、html、xml简单例子

    spring整合freemarker发送邮件例子

    spring整合freemarker实现发送邮件, html中内嵌图片,添加附件, 解决乱码问题.

    FreeMarker 简单的入门小小小小例子

    俗话说万事开头难,这句话对于我们程序员来说非常的适用,刚接触一门新的东西,...FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序

    freemaker生成模板例子

     虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据。  FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件  FreeMarker与容器...

    freemarker语法完整版

    Freemarker页面语法 A 概念 最常用的 3 个概念 sequence 序列,对应java 里的list 、数组等非键值对的集合 hash 键值对的集合 namespace 对一个ftl 文件的引用, 利用这个名字可以访问到该ftl 文件的资源 ...

    用flying saucer将html生成pdf的例子

    本资源是自己在利用itext和flying saucer将html生成pdf,并使用freemarker模板引擎的样例

    freemarker总结

    上面的代码中的逻辑表达式用括号括起来主要是因为里面有&gt;符号,由于FreeMarker会将&gt;符号当成标签的结束字符,可能导致程序出错,为了避免这种情况,我们应该在凡是出现这些符号的地方都使用括号. Pythons are ...

    java html模板 itext 生成pdf 页眉页脚 合并pdf列子

    搜索了好多篇例子,算是强拼硬凑成现在的样子,还算比较满意吧。 此包中包含可测试成功代码,关联模板、字体文件、jar等 希望能帮助到大家。 这篇文章的作者蛮厉害,有不少借鉴。 ...

    freemarker两种用法,struts1.2的

    1.生成静态页面html 2.直接由模板获取数据显示出来

    pdf-generator:使用Java生成PDF文件

    使用Java生成PDF文件 Java + Maven 蜜蜂: 在 freemarkter 模板中创建 HTML+CSS 来生成 PDF 是很灵活的。 例子 它支持导航栏中的书签。 在示例中,用户数据来自 User.java 对象 用法 使用 Eclipse 如果使用eclipse...

    struts2 学习例子

    (1)UI标签:(User Interface, 用户界面)标签,主要用于生成HTML元素标签,UI标签又可分为表单标签非表单标签 (2)非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现...

    可以直接运行的基于SpringMVC的web框架示例,也可以直接当公司框架

    redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 ...

    一个可以直接运行的基于SpringMVC的web框架1.1.12

    redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 ...

    基于SpringMVC的一个web框架

    redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 ...

    基于Spring MVC的web框架 1.1.11

    redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 ...

    SpringMVC基础上的web框架

    这个框架是在学习Spring的时候,为了积累学习成果,自己搭建的,一般的系统开发也可以直接使用,包括一个系统开发的基础功能。 以下是当时自己开发时的日志,大致可以说明框架里已有功能 1.0.5 从web项目迁移成maven...

    JAVA上百实例源码以及开源项目源代码

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

Global site tag (gtag.js) - Google Analytics