推荐书籍 百度云盘 密码: c3m9

1. 前言

本书为<FreeMarker 2.3.19 中文版手册>,包含了freemarker开发得方方面面,可以作为开发freemarker的字典书籍,当然总共两百多页,也可以耐下心来慢慢看.

个人认为在开发的过程使用freemarker可以更好的统一前端,做到很好的代码复用

2. 开发所需环境

目前只需要相应jar包以及jdk环境 jar 密码: pyz2

2.1. java中直接使用模板开发

目录结构

component.ftl 主要用于测试自定义指令,hello.ftl为进入模板,footer.ftl用于测试include包含指令.话补多少,直接贴代码.(详细操作可以参考书籍)

    public static void main(String[] args) throws IOException, TemplateException {
//创建Freemarker配置实例
Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("src/templates"));
//创建数据模型
Map<String,Object> root = new HashMap<String,Object>();
root.put("user1", "hsm");
root.put("user2", "xiaoming"); List<String> lists=new ArrayList<String>();
lists.add("xiaohua");
lists.add("xiaohong");
lists.add("miss");
root.put("lists",lists);
//加载模板文件
Template t1 = cfg.getTemplate("hello.ftl");
//显示生成的数据,//将合并后的数据打印到控制台
Writer out = new OutputStreamWriter(System.out);
t1.process(root, out);
out.flush();
}

2.2 web中使用使其前端开发引擎

目录结构

其他其实和一般的web工程类似,主要看Servlet的内容是如何解析的

package com.hsm;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
* @author hsm
* freemarker解析
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private Configuration cfg;
public HelloServlet() {
super();
}
public void init() {
//初始化FreeMarker配置
//创建一个Configuration实例
cfg =new Configuration();
//设置FreeMarker的模版文件位置
cfg.setServletContextForTemplateLoading(getServletContext(),"WEB-INF/ftl");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//建立数据模型
Map<String, String> map =new HashMap<String, String>();
//放入对应数据key value
map.put("user","Zheng");
//取得模版文件
Template t =cfg.getTemplate("hello.ftl");
//开始准备生成输出
//使用模版文件的charset作为本页面的charset
//使用text/html MIME-type
response.setContentType("text/html; charset=" + t.getEncoding());
PrintWriter out = response.getWriter();
//合并数据模型和模版,并将结果输出到out中
try {
t.process(map,out);//用模板来开发servlet可以只在代码里面加入动态的数据
} catch(TemplateException e) {
throw new ServletException("处理Template模版中出现错误", e);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}

2.3 使用spring mvc配置freemarker解析器

推荐博客

大体知识相同,主要是配置spring mvc的视图解析器

后续更新.....

freemaker开发的更多相关文章

  1. FreeMaker开发教程

    FreeMaker简介 FreeMaker其实是一种比较简单的网页展示技术,说白了就是网页模板和数据模型的结合体.这种结合模式的好处就是,分离了网页界面设计人员和编程人员的工作,让他们各司其职. 据个 ...

  2. Freemaker 开发学习笔记

    Freemaker 是一个强大的模板引擎,相比 velocity 而言,其强大的过程调用.递归和闭包回调功能让 freemaker 可以完成几乎所有我们所想的功能.从个人看法而言,freemaker ...

  3. OFBiz实战(1):整合Groovy+FreeMaker

    这是OFBiz实战系列的第一篇文件,该系列的目的是整合Groovy+FreeMaker开发一个图书管理系统,阐述在此过程中碰到的一系列问题,以及如何解决这些问题.第一篇文章说明如何使用Groovy+F ...

  4. SpringBoot Web开发(4) Thymeleaf模板与freemaker

    SpringBoot Web开发(4) Thymeleaf模板与freemaker 一.模板引擎 常用得模板引擎有JSP.Velocity.Freemarker.Thymeleaf SpringBoo ...

  5. word 文档导出 (freemaker+jacob)--java开发

    工作中终于遇到了 需要导出word文旦的需求了.由于以前没有操作过,所以就先百度下了,基本上是:博客园,简书,CDSN,这几大机构的相关帖子比较多,然后花了2周时间 才初步弄懂.  学习顺序: 第一阶 ...

  6. myeclipse环境下开发freemarker

    最近在着手一个项目,其中就要使用到freemarker模版,当把html漂亮写完时,改写成freemarker时,问题来了.全屏都是白底黑色,没有高亮显示,没有语法提示,不能格式化.看着眼花,还容易出 ...

  7. freemaker时间格式转换,精确到毫秒

    在开发中,需要将时间以 2016-09-20 12:00:01:723 的形式里用freemaker展示在页面上,找了好久,终于找到了答案. "createTime":" ...

  8. 前端文摘:Web 开发模式演变历史和趋势

    今天的<前端文摘>给大家分享一篇玉伯的文章.文章详细介绍了 Web 开发的四种常用模式以及未来可能成为流行趋势的 Node 全栈开发模式,相信你看了以后一定会有收获. 您可能感兴趣的相关文 ...

  9. freemaker的基本语法

    先来解释一下freemaker的基本语法了,<# ... > 中存放所有freemaker的内容,之外的内容全部原样输出.<@ ... /> 是函数调用两个定界符内的内容中,第 ...

随机推荐

  1. JAVA基础针对自己薄弱环节总结01(循环之前的知识)

    java中的标识符 组成:数字.字母.下划线.美元$符号组成.  规则:不能由数字开头.  类名:每一个单词的首字母大写  包名:所有小写  变量名.方法名:第一个单词首字母小写.后面首字母大写  常 ...

  2. Putty的噩梦——渗透工具PuttyRider使用心得分享

    我们在入侵到一台主机的时候,经常会看到管理员的桌面会放着putty.exe,这说明有很大的可能性管理员是使用putty远程管理主机的. 该工具主要是针对SSH客户端putty的利用,采用DLL注入的方 ...

  3. Android--数据库数据显示至屏幕

    MainActivity.java 这段代码的作用是从数据库中获取到数据并显示在界面上 import java.util.ArrayList; import java.util.List; impor ...

  4. C/C++中作用域详解(转)

    作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域).变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号.也就是说,作用域由变量所在的 ...

  5. ID3算法Java实现

    ID3算法java实现 1 ID3算法概述 1.1 信息熵 熵是无序性(或不确定性)的度量指标.假如事件A的全概率划分是(A1,A2,...,An),每部分发生的概率是(p1,p2,...,pn).那 ...

  6. Cocos2d-x中Vector&lt;T&gt;容器以及实例介绍

    Vector<T> 是Cocos2d-x 3.x推出的列表容器,因此它所能容纳的是Ref及子类所创建的对象指针,其中的T是模板,表示能够放入到容器中的类型,在Cocos2d-x 3.x中T ...

  7. java类库中的设计模式

    原帖:http://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns 提问:我正在学习GoF的<设计模式&g ...

  8. iOS多线程与网络开发之小文件上传

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. /** 取得本地文件的MIMEType */ 2 - (void) getMIMEType { 3 // Socket 实现断点上传 4 5 //apa ...

  9. 【甘道夫】Hadoop2.2.0 NN HA具体配置+Client透明性试验【完整版】

    引言: 前面转载过一篇团队兄弟[伊利丹]写的NN HA实验记录,我也基于他的环境实验了NN HA对于Client的透明性. 本篇文章记录的是亲自配置NN HA的具体全过程,以及全面測试HA对clien ...

  10. hdu1316

    链接:pid=1316" target="_blank">点击打开链接 题意:问区间[a,b]中有多少斐波那契数 代码: #include <iostream ...