请输入您要查询的百科知识:

 

词条 freemarker
释义

简介

FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写

FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序

虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据

FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件

FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境

FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库

FreeMarker是免费的

入门例子

Test1.java

package freemarker;

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 Test1 {

private Configuration cfg;

public Configuration getCfg() {

return cfg;

}

public void init() throws Exception {

cfg = new Configuration();

cfg.setDirectoryForTemplateLoading(new File("bin/freemarker"));

}

public static void main(String[] args) throws Exception {

Test1 obj = new Test1();

obj.init();

Map root = new HashMap();

Template t = obj.getCfg().getTemplate("Test1.ftl");

Writer out = new OutputStreamWriter(new FileOutputStream("Test1.html"), "GBK");

t.process(root, out);

System.out.println("Successfull................");

}

}

用到的模版 Test1.ftl

<#macro greet person,website>

Hello ${person}! Your Website is ${website}.

</#macro>

<html>

<head>

<title>Hello World</title>

</head>

<body>

<@greet person="老紫竹" website="www.java2000.net"/>

</body>

</html>

运行结果

<html>

<head>

<title>Hello World</title>

</head>

<body>

Hello 老紫竹! Your Website is <a target="_blank" href="www.java2000.net.">www.java2000.net.</a>

</body>

</html>

注:Test1.ftl的位置在bin/freemarker下

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/7 18:38:52