- 浏览: 153233 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
hardPass:
貌似二分法,没有一个合并的过程
简单_分治算法 -
zhufeng1981:
讲解的不错,支持一下。
简单_分治算法 -
a346063587:
嗯。。的确,基础很重要!
关于递归和尾递归的原理 -
zhufeng1981:
huoyj 写道基础很重要,这是永远不变的真理。 很赞同这句话 ...
关于递归和尾递归的原理 -
huoyj:
基础很重要,这是永远不变的真理。 很赞同这句话
关于递归和尾递归的原理
freeMarker是一个 JAVA开源模版引擎
下面以创建一个静态的HTML页面为例作为入门:
首先需要去下载freeMarker的包,地址http://www.freemarker.org/index.html
该地址含有中文的pdf帮助文档
javaBean
freeMarker模版文件
下面以创建一个静态的HTML页面为例作为入门:
首先需要去下载freeMarker的包,地址http://www.freemarker.org/index.html
该地址含有中文的pdf帮助文档
package freemarker; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class BuildHtml { public static void main(String[] args) { BuildHtml buildHtml = new BuildHtml(); // System.out.println(buildHtml); String path = "D:\\eclipse\\myTest\\src\\freemarker\\"; Map rootMap = new HashMap(); rootMap.put("name", "aaaaaaaaaa"); User2 u2 = new User2("11111","222222222互联网的"); rootMap.put("u2",u2); List<User2> list = new ArrayList<User2>(); for (int i = 0; i < 4; i++) { list.add(new User2("33333_"+i,"44444_"+i)); } rootMap.put("list",list); rootMap.put("zs1","张三1_zs1"); rootMap.put("zs2","张三1_zs2"); buildHtml.create(path, "test1.ft", rootMap , path+"1.html"); } /** * 创建静态HTML页面 * @param filePath 模版路径 * @param fileName 模版文件名 * @param rootMap 参数 * @param html 生成的静态文件路径(包含文件名称) */ public void create(String filePath, String fileName, Map rootMap, String html) { Configuration cfg = new Configuration(); Template t = null; Writer out = null; try { cfg.setDirectoryForTemplateLoading(new File(filePath)); t = cfg.getTemplate(fileName, "gbk"); out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(html), "gbk")); t.process(rootMap, out); } catch (IOException e1) { e1.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } finally { if (out != null) { try { out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
javaBean
package freemarker; public class User2 { String id; String name; public User2(String id, String name) { super(); this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
freeMarker模版文件
<html> <head> <title>Welcome!</title> </head> <body> ${name}<br/> <#--访问对象的属性--> ${u2.name}<br/> <br> <#--条件指令--> <#if u2.name=='222222222'> freemark if<br> </#if> <table border="1"> <tr> <td>id</td> <td>name</td> </tr> <#--list指令进行迭代--> <#list list as u> <tr> <td>${u.id}</td> <td>${u.name}</td> </tr> </#list> </table> <br> <#--不存在的变量,用默认值代替--> <h1>${user100!"Anonymous"}</h1> <#--通过if指令里面用??询问变量是否存在--> <#if user100??>welcome ${user100}</#if> <#--下面的macro定义了一个名为greet的宏,也就是一个代码片段,--> <#macro greet> <font size="+2">早晨好!</font><br> </#macro> <#--使用宏--> <@greet/> <@greet/> <#--带参数的宏--> <#macro greet2 person> <font size="+2">Hello ${person}/> </#macro> <@greet2 person="张三1"/> and <@greet2 person="张三2"/> <#--用数据替换张三1和张三2--> <@greet2 person=zs1/> and <@greet2 person=zs2/> </body> </html>
发表评论
-
高效编写JAVA代码的几条建议(转)
2011-11-23 20:34 1369(1) 类名首字母应该大写 ... -
java正则表达式及java.util.regex包的学习
2011-11-16 22:34 24777没有事做,就会堕落。。 这个世界有太多的浮躁,要耐得住诱惑; ... -
quartz的配置(转自网络)
2011-11-16 20:18 1207周允许的是1-7 其中1 ... -
[转自网络]freeMarker的常用语法(以后可能会用到)
2011-11-16 09:48 1215常用语法 EG.一个对象BOOK 1.输出 $…{book ... -
开源定时器quartz入门
2011-11-15 20:03 4879闲来无事学习了下quartz框架,其实JAVA下的定时器框架还 ... -
java.util.logging包的学习
2011-11-11 22:07 1347package sunfa.lx; import jav ... -
mybatis中的一个OOXX
2011-11-08 15:11 1245mybatis : mybatis XML中执行多条语句: ... -
Timer和ScheduledExecutorService区别
2011-10-09 23:59 3222Timer里面的任务如果执行时间太长,会独占Timer对象,使 ... -
java io流之 装饰模式
2011-10-05 21:41 1156初学java.io的时候容易被众多的IO类搞晕头,其实java ... -
java nio学习笔记<一>
2011-10-05 21:04 1094package nio; import java.i ... -
java.util.concurrent.atomic.*包的体会
2011-10-01 18:10 1471java.util.concurrent.atomic.*包的 ... -
计算很大数组中List的和
2011-09-30 19:45 1080原帖地址: http://www.iteye.com/topi ... -
CountDownLatch、CyclicBarrier让多线程变得更简单
2011-09-29 16:54 1108CountDownLatch 一个同步辅助类,在完成一组正在其 ... -
山寨同步队列 VS 官方BT的ArrayBlockingQueue ,结果官方落马!!!
2011-09-29 15:30 1034官方的java.util.concurrent.ArrayBl ... -
突然发现自己的JAVA基础很差
2011-09-25 11:50 1168今天因为一个问题上网搜索却牵扯出了另一个问题。。。纠结。、、还 ... -
java_Comparable & Comparator
2011-09-21 23:21 1444java有2个非常重要的排序接口:java.lang.Comp ... -
tomcat,jboss部署方式(热部署)
2011-06-26 16:08 2840tomcat: 1、直接把项目web文件夹放在webapps里 ... -
JAVA书籍(IO多线程等)
2011-05-29 15:47 1016留下这些书,纪念我曾经走过的路。 -
java IO的学习总结
2011-05-29 15:31 10521、JAVA中的IO流分字节流和字符流 2、InputStre ... -
关于JAVA3D游戏(摘自网络)
2011-01-02 16:56 23962006年8月,我们终于决定用计算机三维视觉游戏机制制作自己的 ...
相关推荐
在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...
总结来说,"Servlet + Freemarker 入门练习"涉及以下几个关键知识点: 1. **Servlet**:Java 服务器端编程,处理 HTTP 请求,实现业务逻辑。 2. **Freemarker**:模板引擎,分离视图和逻辑,生成动态 HTML。 3. **...
通过学习这9页的Freemarker入门教程,你将能够理解和应用基本的Freemarker语法,进一步深入学习,你可以掌握更高级的特性,成为熟练的Freemarker使用者,从而更好地服务于Web开发工作。在实践中不断探索,你会发现...
本示例“一个意义深刻的FreeMarker入门例子之HelloWord”旨在帮助初学者理解并掌握FreeMarker的基本用法。 在Java Web开发中,FreeMarker与后端控制器如Servlet或Spring MVC中的Controller协同工作,允许开发者将...
在"JFinal+Maven+FreeMarker入门实例"中,我们将看到如何配置和使用这些工具。首先,我们需要在项目根目录下创建一个`pom.xml`文件,这是Maven项目的配置文件。在这里,我们需要列出所有依赖项,包括JFinal和...
FreeMarker与Struts2整合的入门Demo 直接布署在Servlet容器运行
通过深入学习"Freemarker入门学习资料"中的内容,你可以掌握Freemarker的基本使用、语法特性、与Spring的整合方法,以及最佳实践,从而有效地进行Web应用的视图层开发。记得实践中不断探索和优化,提升模板设计和...
### FreeMarker入门知识详解 #### 一、FreeMarker概述 FreeMarker是一款强大的模板引擎,它以Java语言编写,主要用于生成动态HTML网页,特别是在MVC(Model-View-Controller)架构中,作为视图组件,负责将模型...
这篇《FreeMarker入门指南》将深入介绍其基本概念、语法以及在实际项目中的应用。 一、FreeMarker简介 FreeMarker是一个基于模板的Java库,用于生成文本输出。它的主要工作原理是将模板(template)与数据模型...
### Freemarker 入门详解 #### 一、Freemarker 概述 Freemarker 是一款功能强大的模板引擎,主要用于生成动态的 HTML 页面以及其他格式的文档。它将模板设计与后端逻辑分离,使得前端设计师可以专注于页面布局与...
本入门文档结合实例,旨在帮助初学者快速理解并掌握Freemarker的基本用法。 一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。...
以下是对`freemarker入门Demo`相关知识点的详细说明: 1. **严格的MVC分离**: Freemarker模板引擎不支持编写Java代码,这意味着开发者可以在模板文件中专注于展示逻辑,而将数据处理和业务逻辑保留在控制器和服务...
本教程将通过一个基础的"freemarker入门demo",帮助你理解Freemarker的工作原理和基本用法。 首先,让我们了解一下Freemarker模板语言(FTL)。FTL是Freemarker Template Language的缩写,它是一种声明式的标记语言...
在上述的Freemarker入门实例中,我们看到一个简单的`product.ftl`模板文件,其中包含HTML结构以及`${...}`包围的Freemarker表达式。这些表达式在运行时会被对应的数据模型中的值替换。例如,`${user}`和`${...
这是一个基础入门案例,旨在帮助初学者快速理解这两个技术的结合。 Spring Boot是一个由Pivotal团队开发的Java框架,它简化了Spring应用的初始搭建以及开发过程。它内置了各种默认配置,使得开发者可以快速地创建...
本指南主要针对FreeMarker 2.3.23版本,提供详细的API文档和入门教程。 在开始之前,你需要了解FreeMarker的基本概念:模板(Template)和数据模型(Data Model)。模板是包含静态文本和变量的文件,变量会被数据...
本实例将引导你入门Freemarker,解决在Eclipse环境下使用Java编译时可能出现的乱码问题,并确保使用UTF-8编码方式进行处理。 **1. Freemarker简介** Freemarker是一个基于模板的开源Java库,它与Spring MVC、Struts...
- **模板(Template)**:Freemarker的工作基于模板,模板是纯文本文件,其中包含静态文本和Freemarker指令。这些指令用于插入由应用程序提供的数据。 - **数据模型(Data Model)**:数据模型是应用程序传递给...
本入门手册将帮助你了解FreeMarker的基本概念、语法以及如何在实际项目中运用。 1. **基本概念** - **模板语言**:FreeMarker是模板驱动的,它不直接处理数据,而是通过模板和数据模型结合来生成最终输出。 - **...