深入浅出FreeMarker(一)-基础教程
- 格式:pdf
- 大小:1.44 MB
- 文档页数:38
freemarker基本语法一、什么是FreemarkerFreemarker是一个模板引擎,它可以将数据和模板进行结合,生成所需的文本输出。
它主要用于Web应用程序中的MVC架构中,将业务逻辑和表现层分离。
二、Freemarker基本语法1. 变量Freemarker中的变量可以通过${}来表示,如${}表示取出user对象的name属性。
2. 指令指令是Freemarker中最重要的语法之一,它可以控制模板引擎的行为。
常用指令有if、list、assign等。
(1)if指令:用于条件判断,例如:<#if user.age gt 18>成年人<#else>未成年人</#if>```(2)list指令:用于循环输出,例如:```html<#list users as user>${}</#list>```(3)assign指令:用于变量赋值,例如:```html<#assign name = "张三"> ${name}```宏定义是一种自定义函数的方式,在模板中可以多次调用。
例如:```html<#macro printName name>${name}</#macro><@printName name="张三"/><@printName name="李四"/>```4. 内建函数Freemarker提供了一些内建函数,可以方便地处理字符串、日期等数据类型。
例如:(1)字符串函数:```html${name?length} //获取字符串长度${name?upper_case} //将字符串转换为大写字母${name?lower_case} //将字符串转换为小写字母```(2)日期函数:```html${date?string("yyyy-MM-dd")} //将日期格式化为指定格式的字符串${date?time} //获取日期的时间戳```5. 注释在Freemarker中,注释可以使用<#-- -->来表示,例如:```html<#-- 这是一段注释 -->```三、Freemarker在Java中的应用1. 引入Freemarker依赖在Maven项目中,可以通过以下方式引入Freemarker依赖:```xml<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency>```2. 创建Configuration对象Configuration对象是Freemarker的核心类,它会负责解析模板文件和数据模型。
FreeMarket模板引擎快速入门【面试+工作】FreeMarket模板引擎快速入门【面试+工作】FreeMarker 快速入门FreeMarker是一个很值得去学习的模版引擎。
它是基于模板文件生成其他文本的通用工具。
本章内容通过如何使用FreeMarker生成Html web 页面和代码自动生成工具来快速了解FreeMarker。
1 简介FreeMarker是一款用java语言编写的模版引擎,它虽然不是web应用框架,但它很合适作为web应用框架的一个组件。
特点:•轻量级模版引擎,不需要Servlet环境就可以很轻松的嵌入到应用程序中•能生成各种文本,如html,xml,java,等•入门简单,它是用java编写的,很多语法和java相似工作原理:2 FreeMarker 程序这里通过模拟简单的代码自动生产工具来感受第一个FreeMarker 程序。
项目目录结构项目创建流程第一步:创建一个maven项目导入 FreeMarker jar 包第二步:创建目录templates,并创建一个 FreeMarker模版文件hello.ftl第三步:创建一个运行FreeMarker模版引擎的FreeMarkerDemo.java 文件第四步:运行main方法后刷新项目pom.xml 文件,maven 项目核心文件,管理 jar 包。
hello.ftl FreeMarker基本语法:${xxx} xxx 相当于占位符,java后台给xxx赋值后,再通过${}输出FreeMarkerDemo.java 核心方法,使用 FreeMarker 模版引擎。
运行程序后刷新项目,会发现多了一个AutoCodeDemo.java类。
不仅仅是java类,xml也是可以。
笔者就是通过FreeMarker做了一个简易的工具类,公司的一个标准管理页面及其增删改查等功能,以及相关的配置文件(十三个文件),一个回车就全部自动生成(偷懒ing)。
freemarker1⼀些内建函数和⽤法${" green mouse"?cap_first} --> Green mouse //字符串中的第⼀个单词的⾸字母⼤写${"ABCDF"?lower_case} --> abcdf //字符串⼩写形式[${"a"?left_pad(5)}] --> [ a] //距左边如果它仅仅⽤1个参数,将在字符串的开始插⼊空⽩,知道整个串的长度达到参数指定的值. 如果字符串长度达到或者超过指定的长度,就什么都不做.[${"a"?left_pad(8,".oO")}] -->[.oO.oO.a]//第⼆个参数也可以是长度⽐1⼤的字符串,这个字符串会周期性的插⼊.<#if "piceous"?contains("ice")>It contains "ice"<#/if> --> It contains "ice" //contains 包含${"aaaaa"?repalce("aaa","XX")} --> XXaa //在元字符串中,⽤另外⼀个字符串来替换原字符串中出现它的部分不处理词的边界<#assign x= 's/b c'> ${x?url} --> a%2Fb%20c //通常引⽤的属性值,⽤普通引号("")包括,⽽不是单引号(''),因为单引号是不被URL转义的,<#list "someMOOtestMOOtext"?split("MOO" as x)>-${x}</#list> --> -some -test - text //split 分割,(${" green mouse "}?trim) --> (green mouse) //trim 去掉字符串⾸尾的空格<替换为<>替换为>&替换为&"替换为"'替换为'学习是枯燥的.。
freemarker使用流程Freemarker使用流程Freemarker是一款流行的模板引擎,广泛应用于Java Web开发中。
它能够有效地将数据与展示分离,提高开发效率和代码的可维护性。
下面将介绍Freemarker的使用流程,帮助读者更好地理解和运用这一工具。
1. 熟悉Freemarker语法在使用Freemarker之前,首先需要熟悉其语法规则。
Freemarker 使用类似于HTML的标签和表达式来动态生成内容。
了解Freemarker的基本语法结构对于后续的开发至关重要。
2. 配置Freemarker环境在项目中引入Freemarker依赖,并配置Freemarker的相关参数,如模板文件的路径、编码方式等。
确保Freemarker能够正常工作,并与项目的其他组件协调配合。
3. 创建Freemarker模板编写Freemarker模板文件,定义页面的结构和内容。
在模板中可以使用Freemarker的标签和表达式来引用数据、控制流程和展示内容。
合理设计模板结构,提高页面的可读性和可维护性。
4. 准备数据模型准备与模板对应的数据模型,包括需要在页面中展示的数据内容。
数据模型可以是JavaBean、Map等形式,确保数据的准确性和完整性,以便在模板中进行引用和展示。
5. 渲染模板将数据模型与Freemarker模板进行结合,通过Freemarker引擎进行渲染。
在渲染过程中,Freemarker会根据模板中的标签和表达式动态生成最终的页面内容,将数据填充到指定位置。
6. 输出页面内容将渲染后的页面内容输出到浏览器或其他客户端,让用户可以看到最终的页面效果。
确保页面的呈现与预期一致,检查数据的展示是否准确,页面的布局是否符合设计要求。
7. 调试和优化在使用Freemarker的过程中,可能会遇到一些问题和性能瓶颈。
及时调试代码,查找并解决bug,优化页面性能和加载速度。
保持代码的简洁和高效,提升用户体验和开发效率。
新⼿⼊门学习SpringFreemarker教程解析初步学习freemarker ,先做⼀个简单的HelloWord程序!新建⼀个WEB⼯程,下载(我使⽤的是freemarker-2.3.20)freemarker并导⼊freemarker.jar,在WEB-INF下新建⽂件夹templates⽤于存放模版⽂件在templates下新建test.ftl,这是⽰例模版⽂件。
内容就是HTML内容,⾥⾯带有⼀个标记符,⽤于将来进⾏变量替换,内容如下:<html><head><title>freemarker测试</title></head><body><h1>${message},${name}</h1></body></html>新建⼀个Servlet,⽤于请求设置变量,并处理模版的输出:package com.test.servlet;import java.io.IOException;import java.io.Writer;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;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;@SuppressWarnings("serial")public class HelloFreeMarkerServlet extends HttpServlet {// 负责管理FreeMarker模板的Configuration实例private Configuration cfg = null;public void init() throws ServletException {// 创建⼀个FreeMarker实例cfg = new Configuration();// 指定FreeMarker模板⽂件的位置cfg.setServletContextForTemplateLoading(getServletContext(),"/WEB-INF/templates");}@SuppressWarnings("unchecked")public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 建⽴数据模型Map root = new HashMap();root.put("message", "hello world");root.put("name", "java⼩强");// 获取模板⽂件Template t = cfg.getTemplate("test.ftl");// 使⽤模板⽂件的Charset作为本页⾯的charset// 使⽤text/html MIME-typeresponse.setContentType("text/html; charset=" + t.getEncoding());Writer out = response.getWriter();// 合并数据模型和模板,并将结果输出到out中try {t.process(root, out); // 往模板⾥写数据} catch (TemplateException e) {e.printStackTrace();}}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void destroy() {super.destroy();}}注意要在你的web.xml中配置该Servlet:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>hello</servlet-name><servlet-class>com.test.servlet.HelloFreeMarkerServlet</servlet-class></servlet><servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>为了⽅便测试,访问⼯程直接跳转到Servlet,对主页index.jsp做⼀个简单修改:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><body><%String mypath = "hello";response.sendRedirect(basePath + mypath);%></body></html>以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
SpringBootFreeMarker使⽤教程FreeMarker 跟 Thymeleaf ⼀样,是⼀种模板引擎,他可以⽆缝兼容 FreeMarker 在 Spring Boot 开发者中仍然有着很⾼的地位。
本章重点内容1. 编写⼀个最简单的 Freemark 模板⽰例2. 简单说明 FreeMarker1 FreeMarker 简介相对于 Jsp ,FreeMarker 具有太多的优势。
FreeMarker 适合 Mvc 场景。
FreeMarker 最⼤的特点就是具有可编程能⼒,可以对任何后台输出的数据做编程能⼒,这就像在 Java 中加⼊了 PHP 功能,这⾮常有趣。
FreeMarker ⽀持各类语法包括字符输出、条件判断 if/else、循环遍历、1.1 变量${...}1.2 条件语句<#if condition>...<#elseif condition2>...<#elseif condition3>...<#else>...</#if>1.3 循环语句假设 users 包含['Joe', 'Kate', 'Fred'] 序列:<#list users as user><p>${user}</#list>输出:<p>Joe<p>Kate<p>Fred1.4 include 包含语句将版权信息单独存放在页⾯⽂件 copyright_footer.html 中:<hr><i>Copyright (c) 2000 <a href="">Baidu Inc</a>,<br>All Rights Reserved.</i>当需要⽤到这个⽂件时,可以使⽤ include 指令来插⼊:<html><head><title>Test page</title></head><body><h1>Test page</h1><p>Blah blah...<#include "/copyright_footer.html"></body></html>2 Spring Boot 中编写⼀个 FreeMarker ⽰例本⽰例⽂件结构,新增了连个⽤于⽰例⽂件的⽂件 IndexController.java 与 index.ftl+ java/fishpro/freemarker/controller-- IndexController.java+ resources/templates--index.ftl2.1 新建⼀个 Spring Boot 的 Maven 项⽬2.1 新建 Spring Boot 项⽬1. File > New > Project,如下图选择Spring Initializr然后点击【Next】下⼀步2. 填写GroupId(包名)、Artifact(项⽬名)即可。
freemarker的标签语法一、Freemarker是个啥? 。
咱先来说说Freemarker是个啥玩意儿。
Freemarker呢,就像是一个超级厉害的小助手,专门用来处理模板的。
你可以把它想象成一个魔法盒,你给它一些数据,再给它一个模板,它就能按照这个模板把数据变成超级酷炫的东西,像网页啦、邮件内容啦之类的。
为啥要用Freemarker呢?你想啊,要是你每次做网页或者写邮件都要从头开始写代码,那得多累啊。
有了Freemarker,你就可以把那些经常用到的部分做成模板,然后只要把不同的数据塞进去就好了,就像搭积木一样简单又有趣。
二、基本标签语法来咯 。
(一)插值表达式。
这可是Freemarker的基础操作哦。
插值表达式就像一个小嘴巴,它会把数据“说”出来。
在Freemarker里,插值表达式的格式是`{变量名}`。
比如说,你有一个变量叫`userName`,里面存着用户的名字,那你在模板里写 `{userName}`,Freemarker就会把这个变量的值显示出来。
是不是很神奇呢?就像你告诉它一个小秘密,然后它就会把这个秘密展示给大家看。
(二)指令标签。
1. if指令。
这个 `if` 指令就和我们在编程里常见的 `if` 语句差不多啦。
比如说,你想根据用户的年龄来显示不同的内容。
你可以这样写:<#if age > 18>.欢迎,你已经成年啦!<#else>.小宝贝,你还未成年呢。
</#if>.这里的 `age` 就是我们的变量,根据它的值,Freemarker就会决定显示哪一段内容。
这就像是Freemarker在做选择题一样,根据不同的情况选择不同的答案。
2. list指令。
当你有一组数据,比如说一个用户的购物清单,你就可以用 `list` 指令来遍历它。
像这样:<#list shoppingList as item>.- {item}这里的 `shoppingList` 是一个列表类型的变量,`item` 呢,就是每次遍历出来的一个元素。
freemarker语法freemarker是一种模板引擎,它可以将结构化的数据与静态文字文件混合,然后生成HTML页面、XML文档、电子邮件,以及其他格式的文档。
它拥有许多功能,例如强大的if和for指令,Data Model,各种变量,文件包含,数据类型及函数等,能够为开发者们节省大量时间。
本文将会介绍 freemarker法基础、常用语法特性和数据访问等。
一、 freemarker语法基础1.用变量: freemarker 使用 ${...} 式来引用变量,例如:${name} 用 name量。
2.释: freemarker支持两种注释方式,持行注释 (# ...)行注释(<#-- --#>)。
3.件语句: freemarker 使用 <#if condition> ....</#if>式表示条件语句,当条件为true时,紧跟condition之后的元素才会被执行。
4.环语句: freemarker 使用 <#list sequence as item> ... </#list>式表示循环语句, sequence以是数组,字符串,数字或者对象。
二、freemarker语法特性1.算符: freemarker持 +,-, *,/,%,==,!=,>,>=, <=, ??,and,or,not运算符。
2.较: freemarker持比较操作,用比较操作可以产生true或者false,:${age > 10}3.符串操作: freemarker持各种字符串操作,括string.length(), string.substring(), string.contains()等。
4.数: freemarker持很多内置函数,例如date.format(dateObj), date.time?, number.format(numberValue)。
freemarker菜鸟教程Freemarker菜鸟教程1. 介绍Freemarker是一种模板引擎,用于将数据模型与文本模板合并生成输出内容。
它提供了多种功能,使开发人员能够轻松地生成动态网页、邮件、XML文件等。
2. Freemarker的优点- 简洁易学:Freemarker使用简单的语法和模板指令,易于学习和使用。
即使是没有编程经验的初学者也可以快速上手。
- 强大灵活:Freemarker提供了丰富的模板指令和表达式,可以满足各种动态内容生成的需求。
- 高性能:Freemarker运行速度快,生成的输出内容效率高,非常适合用于大规模的数据处理和生成。
3. Freemarker基本语法- 插值:使用${}来插入变量或表达式的值。
```html<p>欢迎来到Freemarker教程,${username}!</p>```- 条件判断:使用if-else指令进行条件判断。
```html<#if age < 18><p>您是未成年人。
</p><#else><p>您已成年。
</p></#if>```- 循环:使用list指令实现列表的循环遍历。
```html<ul><#list users as user><li>${}</li></#list></ul>```- 宏定义:使用#macro指令定义宏,可以实现代码的重复使用。
```html<#macro hello /><h1>Hello, ${name}!</h1></#macro>```4. Freemarker内置指令- include指令:用于引入其他模板文件。
```html<#include \。