FreeMarker学习笔记(一)

本文介绍了FreeMarker模板引擎的基本概念及其在项目中的应用优势。FreeMarker可以有效分离表现层与业务逻辑,提升开发效率,支持智能国际化,并促进前后端开发人员的分工合作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结合最近在公司用到的FreeMarker 页面静态化及动态生成页面 做一个总结归纳:

首先我们在学习FreeMarker之前我们首先要了解FreeMarker是做什么的?

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。

FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。

虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据

通俗一点来讲,FreeMarker就是一种基于模板的、用来生成输出文本的通用工具,基于Java的开发包和类库用来生成输出文本的通用工具,基于Java的开发包和类库。


讲了这么多,那么FreeMarker到底如何使用,它的优点儿在哪儿,我们为什么要使用它,接下来,根据我这一段时间的学习及在项目实战中的应用下面对FreeMarker做一个简单的介绍:

一、为什么要用FreeMarker?它的特性有哪些?

    t特性

        1.分离表现层和业务逻辑

           使用JSP开发过程中在页面中大量的存在业务逻辑的代码,使得页面内容凌乱,在后期大量的修改维护过程中就变得非常困难。FreeMarker根本不支持Java脚本代码,而是使用el表达式来输出展示数据。FreeMarker的设计初衷就是:模板+数据模型=输出,模板只负责数据在页面中的表现,不涉及任何的逻辑代码,而所有的逻辑都是由数据模型来处理的。用户最终看到的输出是模板和数据模型合并后创建的。


        3.智能的国际化和本地化

           字符集智能化(内部使用UNICODE)、数字格式本地化敏感、日期和时间格式本地化敏感、非US字符集可以用作标识(如变量名)、多种不同语言的相同模板


        2.提高开发效率

           在我们以往的开发中,使用的都是JSP页面来展示数据的,即所谓的表现层。我们都知道,JSP在第一次执行的时候需要转换成Servlet类,开发阶段进行功能调适时,需要频繁的修改JSP,每次修改都要编译和转换,那么试想一天中我们浪费在程序编译的时间有多少。相对于JSP来说,FreeMarker模板技术不存在编译和转换的问题,所以就不会存在上述问题。而且开发过程中,我们在不必在等待界面设计开发人员完成页面原形后,我们再来开发程序。


        3. 分工明确

           以往用JSP展现数据时,程序员并不熟悉界面设计技术,反之界面开发人员,也并不熟悉程序语言。协调工作很困难,使用FreeMarker后,作为界面开发人员,只专心创建HTML文件、图像以及Web页面的其他可视化方面,不用理会数据;而程序开发人员则专注于系统实现,负责为页面准备要显示的数据。


首先我们来对Freemarker有一个初略的认识,在这一章中,我们要学会如何写出一个简单但是非常有效的Freemarker模板。

案例 :1.模板+数据模型=输出


首先新建一个JavaProject

1.1新建一个文件夹存放 Freemarker 模板文件 后缀名为.ftl



1.2创建一个包和一个class 类



代码实例:

package com.wky.fm;

import java.io.File;
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 java.util.Random;


import freemarker.template.Configuration;
import freemarker.template.Template;

public class TestFreeMarker {

    @SuppressWarnings("test_FM")
    public static void main(String[] args) throws Exception {
        
        //创建freemarker配置实例
                Configuration cfg = new Configuration();
                
                //设置模板加载的目录
                cfg.setDirectoryForTemplateLoading(new File("test_fm"));
                        
                //创建数据模型
                Map
  
    map = new HashMap
   
    ();
                map.put("user", "张三");
                        
                //加载模板文件
                Template template = cfg.getTemplate("test.ftl");
                        
                //显示生成数据
                Writer out = new OutputStreamWriter(System.out);
                template.process(map, out);
                
                out.flush();
                out.close();
    }
    

}
   
  


1.3在模板中写测试代码




1.4 Demo测试 在控制台打印输出 模板信息




内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值