原文:http://www.java2000.net/p7841
程序代码
- 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 Test2 {
- private Configuration cfg;
- public Configuration getCfg() {
- return cfg;
- }
- public void init() throws Exception {
- cfg = new Configuration();
- cfg.setDirectoryForTemplateLoading(new File("bin/freemaker"));
- }
- public static void main(String[] args) throws Exception {
- Test2 obj = new Test2();
- obj.init();
- Map root = new HashMap();
- root.put("user", "java2000.net");
- Map latestProduct = new HashMap();
- latestProduct.put("url", "http://www.java2000.net");
- latestProduct.put("name", "Java世纪网");
- root.put("latestProduct", latestProduct);
- Template t = obj.getCfg().getTemplate("Test2.ftl");
- Writer out = new OutputStreamWriter(new FileOutputStream("Test2.html"), "GBK");
- t.process(root, out);
- System.out.println("Successfull................");
- }
- }
模板
- <html>
- <head>
- <title>Welcome!</title>
- </head>
- <body>
- <h1>Welcome ${user}!</h1>
- <p>Our latest product:
- <a href="${latestProduct.url}">${latestProduct.name}</a>!
- </body>
- </html>
运行结果- <html>
- <head>
- <title>Welcome!</title>
- </head>
- <body>
- <h1>Welcome java2000.net!</h1>
- <p>Our latest product:
- <a href="http://www.java2000.net">Java世纪网</a>!
- </body>
- </html>
分析:
数据结构为
(root)
|
+-
user = "java2000.net"
|
+-
latestProduct
|
+-
url = "http://www.java2000.net"
|
+-
name = "Java世纪网"
我们使用嵌套的Map给其传递参数
<script type="text/javascript">
</script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script>
分享到:
相关推荐
此外,`test`包下的测试类展示了一种使用Freemarker的方式,通过构建数据模型并将其传递给模板,实现了动态内容的生成。 综上所述,Freemarker是一种强大的模板引擎,它能够高效地处理复杂的数据结构,并生成各种...
接着,Servlet会加载一个名为`index.ftl`的Freemarker模板,将Map对象传递给模板。模板中可能包含一些条件判断和循环,用来动态生成HTML表格或其他展示数据的元素。 6. **部署与测试** 将项目打包成WAR文件,部署...
FreeMarker 支持自定义命令,通过 `macro` 可以定义新的模板命令,并且可以向这些命令传递参数。这有助于减少重复代码,并增强模板的复用性。 ### 总结 FreeMarker 是一款功能强大的模板引擎,能够帮助开发者高效...
- 在上面的示例中,`index`方法返回的字符串"index"对应的是Freemarker模板文件的名字,`Model`参数用于向模板传递数据。 5. **Freemarker语法** - Freemarker模板文件(如`index.ftl`)中,可以使用`<#...>`指令...
- **Template类**:代表一个Freemarker模板,是解析和执行模板的主要接口。 - **Configuration类**:管理Freemarker的全局设置,如模板加载路径,缓存策略等。 - **Environment类**:在模板执行期间,保存当前上...
开发者可以在后端处理业务逻辑,然后将数据模型传递给Freemarker模板,模板根据这些数据生成最终的HTML响应。 在"freemarker web工程实例"中,我们假设已经搭建了一个基本的Java Web环境,包括Tomcat服务器和Maven...
现在,当访问`/hello`路由并传递参数`name`时,SpringMVC会调用`hello`方法,将数据填充到`hello.ftl`模板中,生成HTML响应并返回给客户端。 **5. 高级特性** FreeMarker支持许多高级特性,例如条件语句(`<#if>`...
FreeMarker模板语言简洁且灵活,可以轻松地控制布局和样式,同时减少了前端开发的工作量。 **Maven** Maven是Java项目管理工具,负责项目的构建、依赖管理和项目信息管理。它通过POM(Project Object Model)文件来...
FreeMarker模板文件(FTL)是纯文本文件,扩展名为`.ftl`,用于定义页面布局和逻辑。在后端,我们可以通过`ModelMap`或`HttpServletRequest`对象将数据传递到前端的FTL文件。例如,后端的一个简单方法`getValue`...
7. **Controller处理请求**:接收前端请求,如页码、每页数量等,调用Service层获取数据,然后将结果传递给FreeMarker模板进行渲染。 通过以上步骤,我们可以构建出一个功能完备且界面美观的分页应用。这个项目中的...
2. **模型数据传递**:在SpringMVC的控制器方法中,通过`Model`或`ModelAndView`对象将数据添加到模型中,这些数据将在Freemarker模板中可用。 3. **模板设计**:创建Freemarker模板文件(通常以`.ftl`为扩展名),...
标题“围绕分页的练习(1)(ssh+freemarker)”指的是一个关于使用Spring、Struts和Hibernate(SSH)框架以及Freemarker模板引擎进行分页功能实现的编程练习。SSH是一个流行的企业级Java web应用开发框架,而Freemarker...
FreeMarker模板则负责将从Action传递过来的数据渲染成用户可见的HTML页面。在FreeMarker模板中,我们可以轻松地遍历分页结果,展示每一页的数据。同时,它还可以根据Action提供的上下文变量,如总页数、当前页码等,...
在Web应用中,FreeMarker接收从后台传递的数据,结合模板文件生成用户友好的页面,实现了视图层的分离,提高了代码的可维护性。 Mycat作为数据库中间件,它的工作原理是将一个大数据库切分为多个小数据库,通过负载...
通过这个测试,你可以学习到如何将Java后端与Freemarker模板协同工作,理解MVC模式中的视图部分是如何工作的,以及如何有效地将数据呈现给用户。对于Java Web开发者来说,熟练掌握这种技术能够提高开发效率和代码可...
这些参数可以通过`Properties`对象传递给`Session`实例。 5. **创建邮件会话**: 使用`Session.getInstance()`方法创建一个邮件会话,可以设置SMTP服务器的属性和认证信息。 6. **构建邮件消息**: 使用`...
视图层在WebWork2中通常是JSP或FreeMarker模板。WebWork2通过OGNL(Object-Graph Navigation Language)表达式语言来传递数据到视图,使得视图能够轻松地访问Action上下文中的任何对象。 在学习WebWork2时,理解...
在控制器中,我们可以创建模型数据并将其传递给FreeMarker模板。FreeMarker将根据提供的数据渲染出最终的HTML页面,然后返回给客户端。 总的来说,Spring Boot与FreeMarker的整合使得开发动态网页变得更加简单,...
这个“ssh模板项目”提供了一个基础架构,可以帮助开发者快速启动一个新的Web项目,无需从零开始设置各个组件。以下是关于SSH框架及模板项目的详细知识点: 1. **Struts2**: - Struts2是MVC(Model-View-...
9. **Struts2的测试**:Struts2提供了JUnit测试支持,可以对Action进行单元测试,确保业务逻辑的正确性。 10. **Struts2的安全性**:虽然Struts2在历史上曾出现过安全漏洞,但经过不断更新和完善,其安全性得到了...