`
逆风的香1314
  • 浏览: 1439560 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从零学习freemarker(2)给模板传递参数的测试

阅读更多
原文:http://www.java2000.net/p7841

程序代码
 

  1. package freemarker;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.OutputStreamWriter;
  5. import java.io.Writer;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import freemarker.template.Configuration;
  9. import freemarker.template.Template;
  10. public class Test2 {
  11.   private Configuration cfg;
  12.   public Configuration getCfg() {
  13.     return cfg;
  14.   }
  15.   public void init() throws Exception {
  16.     cfg = new Configuration();
  17.     cfg.setDirectoryForTemplateLoading(new File("bin/freemaker"));
  18.   }
  19.   public static void main(String[] args) throws Exception {
  20.     Test2 obj = new Test2();
  21.     obj.init();
  22.     Map root = new HashMap();
  23.     root.put("user""java2000.net");
  24.     Map latestProduct = new HashMap();
  25.     latestProduct.put("url""http://www.java2000.net");
  26.     latestProduct.put("name""Java世纪网");
  27.     root.put("latestProduct", latestProduct);
  28.     Template t = obj.getCfg().getTemplate("Test2.ftl");
  29.     Writer out = new OutputStreamWriter(new FileOutputStream("Test2.html"), "GBK");
  30.     t.process(root, out);
  31.     System.out.println("Successfull................");
  32.   }
  33. }


模板
  1. <html>
  2. <head>
  3.   <title>Welcome!</title>
  4. </head>
  5. <body>
  6.   <h1>Welcome ${user}!</h1>
  7.   <p>Our latest product:
  8.   <a href="${latestProduct.url}">${latestProduct.name}</a>!
  9. </body>
  10. </html> 


运行结果

  1. <html>
  2. <head>
  3.   <title>Welcome!</title>
  4. </head>
  5. <body>
  6.   <h1>Welcome java2000.net!</h1>
  7.   <p>Our latest product:
  8.   <a href="http://www.java2000.net">Java世纪网</a>!
  9. </body>
  10. </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>
分享到:
评论
1 楼 bcw104 2008-12-21  
运行结果是指什么意思?生成了一个html文件吗?

相关推荐

    freemarker

    此外,`test`包下的测试类展示了一种使用Freemarker的方式,通过构建数据模型并将其传递给模板,实现了动态内容的生成。 综上所述,Freemarker是一种强大的模板引擎,它能够高效地处理复杂的数据结构,并生成各种...

    freemarker_servlet_demo

    接着,Servlet会加载一个名为`index.ftl`的Freemarker模板,将Map对象传递给模板。模板中可能包含一些条件判断和循环,用来动态生成HTML表格或其他展示数据的元素。 6. **部署与测试** 将项目打包成WAR文件,部署...

    FreeMarker

    FreeMarker 支持自定义命令,通过 `macro` 可以定义新的模板命令,并且可以向这些命令传递参数。这有助于减少重复代码,并增强模板的复用性。 ### 总结 FreeMarker 是一款功能强大的模板引擎,能够帮助开发者高效...

    springboot如何使用Freemarker模版引擎

    - 在上面的示例中,`index`方法返回的字符串"index"对应的是Freemarker模板文件的名字,`Model`参数用于向模板传递数据。 5. **Freemarker语法** - Freemarker模板文件(如`index.ftl`)中,可以使用`&lt;#...&gt;`指令...

    Freemarker API 中英文合集 chm格式

    - **Template类**:代表一个Freemarker模板,是解析和执行模板的主要接口。 - **Configuration类**:管理Freemarker的全局设置,如模板加载路径,缓存策略等。 - **Environment类**:在模板执行期间,保存当前上...

    freemarker web工程实例

    开发者可以在后端处理业务逻辑,然后将数据模型传递给Freemarker模板,模板根据这些数据生成最终的HTML响应。 在"freemarker web工程实例"中,我们假设已经搭建了一个基本的Java Web环境,包括Tomcat服务器和Maven...

    freemarker与springmvc整合的例子

    现在,当访问`/hello`路由并传递参数`name`时,SpringMVC会调用`hello`方法,将数据填充到`hello.ftl`模板中,生成HTML响应并返回给客户端。 **5. 高级特性** FreeMarker支持许多高级特性,例如条件语句(`&lt;#if&gt;`...

    spring boot + mybaits +freemarker +maven 架构来袭 注解版

    FreeMarker模板语言简洁且灵活,可以轻松地控制布局和样式,同时减少了前端开发的工作量。 **Maven** Maven是Java项目管理工具,负责项目的构建、依赖管理和项目信息管理。它通过POM(Project Object Model)文件来...

    2freemarker基本数据交互1

    FreeMarker模板文件(FTL)是纯文本文件,扩展名为`.ftl`,用于定义页面布局和逻辑。在后端,我们可以通过`ModelMap`或`HttpServletRequest`对象将数据传递到前端的FTL文件。例如,后端的一个简单方法`getValue`...

    Spring,Spring Data Jpa,freemarker,bootstrap实现的分页源代码

    7. **Controller处理请求**:接收前端请求,如页码、每页数量等,调用Service层获取数据,然后将结果传递给FreeMarker模板进行渲染。 通过以上步骤,我们可以构建出一个功能完备且界面美观的分页应用。这个项目中的...

    springmvc+freemarker

    2. **模型数据传递**:在SpringMVC的控制器方法中,通过`Model`或`ModelAndView`对象将数据添加到模型中,这些数据将在Freemarker模板中可用。 3. **模板设计**:创建Freemarker模板文件(通常以`.ftl`为扩展名),...

    围绕分页的练习(1)(ssh+freemarker)

    标题“围绕分页的练习(1)(ssh+freemarker)”指的是一个关于使用Spring、Struts和Hibernate(SSH)框架以及Freemarker模板引擎进行分页功能实现的编程练习。SSH是一个流行的企业级Java web应用开发框架,而Freemarker...

    围绕分页的练习(2)(ssh+freemarker)

    FreeMarker模板则负责将从Action传递过来的数据渲染成用户可见的HTML页面。在FreeMarker模板中,我们可以轻松地遍历分页结果,展示每一页的数据。同时,它还可以根据Action提供的上下文变量,如总页数、当前页码等,...

    springMVC+ibatis+FreeMarker 连接 mycat 示例

    在Web应用中,FreeMarker接收从后台传递的数据,结合模板文件生成用户友好的页面,实现了视图层的分离,提高了代码的可维护性。 Mycat作为数据库中间件,它的工作原理是将一个大数据库切分为多个小数据库,通过负载...

    freemarkerTest

    通过这个测试,你可以学习到如何将Java后端与Freemarker模板协同工作,理解MVC模式中的视图部分是如何工作的,以及如何有效地将数据呈现给用户。对于Java Web开发者来说,熟练掌握这种技术能够提高开发效率和代码可...

    java freemark发送模板邮件

    这些参数可以通过`Properties`对象传递给`Session`实例。 5. **创建邮件会话**: 使用`Session.getInstance()`方法创建一个邮件会话,可以设置SMTP服务器的属性和认证信息。 6. **构建邮件消息**: 使用`...

    WebWork2学习笔记

    视图层在WebWork2中通常是JSP或FreeMarker模板。WebWork2通过OGNL(Object-Graph Navigation Language)表达式语言来传递数据到视图,使得视图能够轻松地访问Action上下文中的任何对象。 在学习WebWork2时,理解...

    springboot 整合 freemarker代码实例

    在控制器中,我们可以创建模型数据并将其传递给FreeMarker模板。FreeMarker将根据提供的数据渲染出最终的HTML页面,然后返回给客户端。 总的来说,Spring Boot与FreeMarker的整合使得开发动态网页变得更加简单,...

    ssh模板项目

    这个“ssh模板项目”提供了一个基础架构,可以帮助开发者快速启动一个新的Web项目,无需从零开始设置各个组件。以下是关于SSH框架及模板项目的详细知识点: 1. **Struts2**: - Struts2是MVC(Model-View-...

    struts2学习大全

    9. **Struts2的测试**:Struts2提供了JUnit测试支持,可以对Action进行单元测试,确保业务逻辑的正确性。 10. **Struts2的安全性**:虽然Struts2在历史上曾出现过安全漏洞,但经过不断更新和完善,其安全性得到了...

Global site tag (gtag.js) - Google Analytics