FreeMarker概述及环境搭建

FreeMarker是一款Java模板引擎,用于生成文本输出,如HTML网页。它提供了强大的模板语言,通用数据模型,并且适合Web开发。在本文中,我们将概述FreeMarker的主要特性,并详细讲解如何进行环境搭建,包括pom.xml配置、web.xml修改、Servlet编写、ftl模板文件创建以及项目启动和页面查看步骤。

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

FreeMarker - 1

1.概述

FreeMarket是⼀款 模板引擎: 即⼀种基于模板和要改变的数据, 并⽤来⽣成输出⽂本(HTML⽹⻚,电⼦邮件,配置⽂件,源代码等)的通⽤⼯具。 是⼀个Java类库。
通常由 Java 程序准备要显示的数据,由 FreeMarker ⽣成⻚⾯,通过模板显示准备的数据。

2.特性

2.1通⽤⽬标

能够生成各种文本:HTML、XML、RTF、Java 源代码等等;易于使用,不需要Servlet环境。

2.2强⼤的模板语⾔

所有常⽤的指令:include、if/elseif/else、循环结构。

2.3通⽤数据模型

FreeMarker不是直接反射到Java对象,Java对象通过插件式对象封装,以变量⽅式在模板中显示。

2.4为Web准备
2.5智能的国际化和本地化
2.6 强⼤的XML处理能⼒

3.环境搭建

1. 创建maven web项目
2. 引入FreeMarker的依赖和servlet的依赖 (pom.xml)
3. 修改web.xml配置文件,添加FreeMarker的Servlet配置
4. 新建Servlet,设置数据模型,并请求转发到FreeMarker页面
5. 新建FreeMarker页面,获取数据模型
6. 加入tomcat或jetty插件,添加命令启动项目
7. 访问项目
3.1pxm.xml配置
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.xxxx</groupId>
  <artifactId>freemarker</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>freemarker Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <!-- 引入freemaker的依赖 -->
    <dependency>
      <groupId>org.freemarker</groupId>
      <artifactId>freemarker</artifactId>
      <version>2.3.23</version>
    </dependency>
    
    <!-- 引入servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <finalName>freemarker</finalName>

    <!--
        插件地址:
          Tomcat
            http://tomcat.apache.org/maven-plugin-2.2/
          Jetty
            https://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html
    -->
    <plugins>
      <!-- 配置jetty插件 -->
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>9.2.1.v20140609</version>
      </plugin>
    </plugins>

  </build>
</project>
3.2修改配置⽂件 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <!-- FreeMarker 的Servlet配置 -->
  <servlet>
    <servlet-name>freemarker</servlet-name>
    <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
    <init-param>
      <!-- 模板路径 -->
      <param-name>TemplatePath</param-name>
      <!-- 默认在webapp目录下查找对应的模板文件 -->
      <param-value>/</param-value>
    </init-param>
    <init-param>
      <!-- 模板默认的编码:UTF-8 -->
      <param-name>default_encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </servlet>
  <!-- 处理所有以.ftl结尾的文件;ftl是freemarker默认的文件后缀 -->
  <servlet-mapping>
    <servlet-name>freemarker</servlet-name>
    <url-pattern>*.ftl</url-pattern>
  </servlet-mapping>
</web-app>
3.3编写Servlet类
package com.xxxx.servlet;

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 java.io.IOException;

@WebServlet("/f01")
public class Servlet01 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 设置数据模型
        req.setAttribute("msg","Hello FreeMarker!");

        // 请求转发到freemarker页面
        req.getRequestDispatcher("template/f01.ftl").forward(req,resp);

    }
}

3.4新建模板⽂件 ftl

在webapp⽬录下新建template⽂件夹,创建f01.ftl⽂件

<!--
    HTML注释
        浏览器查看源码可见
-->
<#--
    FreeMarker注释
        浏览器查看源码不可见(开发中推荐使用)

        1. FreeMarker中使用HTML的标签
        2. FreeMarker中css、js等资源也适用
-->
<#--
    获取数据模型
-->
${msg}
3.5启动项目

在这里插入图片描述

3.6浏览器查看

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值