浏览 9794 次
锁定老帖子 主题:用freemarker生成html小例子
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-29
同学接到一个做网站美工的小项目,没有逻辑处理的页面和数据库操作,这样对于我们这种程序研发人员反而还比较棘手。。
上网搜了一下有没有偷懒的方法,发现了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插件。插件的使用方法就不磨叽了~ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-01
不错就是东西太少了点
freemarker做html的成品网站可参阅http://www.ibaodian.cn/ 希望看到LZ下次作品 |
|
返回顶楼 | |
发表时间:2010-11-01
楼主这个例子的使用场景是怎么样的,仅仅是生产html?
个人觉得freemarker在生成html方面比较有价值的是模板功能,比如web界面换模板和换皮肤功能,以前struts1.1因为没有和freemarker结合,还需要配置servlet支持freemarker。struts2已经内置了freemarker,我们可以用ftl取代jsp页面,这样可以把前台页面和模板功能放心的交给ui。最好ui有些jsp的知识,能使用标签,这样开发人员的工作量会小很多。 |
|
返回顶楼 | |
发表时间:2010-11-01
robinjim 写道 楼主这个例子的使用场景是怎么样的,仅仅是生产html?
个人觉得freemarker在生成html方面比较有价值的是模板功能,比如web界面换模板和换皮肤功能,以前struts1.1因为没有和freemarker结合,还需要配置servlet支持freemarker。struts2已经内置了freemarker,我们可以用ftl取代jsp页面,这样可以把前台页面和模板功能放心的交给ui。最好ui有些jsp的知识,能使用标签,这样开发人员的工作量会小很多。 呵呵,我只是随便玩一下。还没有投入使用哦 : 谢谢您的回复 |
|
返回顶楼 | |
发表时间:2010-11-01
bluemusic 写道 不错就是东西太少了点
freemarker做html的成品网站可参阅http://www.ibaodian.cn/ 希望看到LZ下次作品 |
|
返回顶楼 | |
发表时间:2010-11-02
这个在我们网站经常用到,要是是对一些,长时间查询一次数据库,和不常变化的页面用TA生成。
|
|
返回顶楼 | |
发表时间:2011-03-11
不错 不错。
请问楼主 frremarker语句里可以有HTML代码? |
|
返回顶楼 | |
发表时间:2011-03-11
crazy84241167 写道 不错 不错。 请问楼主 frremarker语句里可以有HTML代码? freemarker就是一个页面模板,肯定可以嵌入html代码啊 |
|
返回顶楼 | |
发表时间:2011-09-08
crazy84241167 写道 不错 不错。
请问楼主 frremarker语句里可以有HTML代码? 你想嵌入xml代码css代码。。。。都行。 |
|
返回顶楼 | |