当前位置:网站首页 > Java教程 > 正文

java framemaker教程



这是 FreeMarker Java 模板引擎的入门教程。 我们介绍了 FreeMarker 模板引擎,并创建了几个控制台和 Web 应用。 Maven 用于构建我们的示例。 NetBeans 用于管理应用。

FreeMarker 是 Java 编程语言的模板引擎。 模板以 FreeMarker 模板语言(FTL)编写。 FreeMarker 的主页是 freemarker.org 。

模板引擎将静态数据与动态数据结合起来以产生内容。 模板是内容的中间表示。 它指定如何生成输出。

模板引擎的优点是:

  • 关注点分离,
  • 避免重复代码,
  • 更容易在视图之间切换,
  • 可重用性。

按照惯例,FreeMarker 模板文件的扩展名为。

FreeMarker 不仅限于 HTML 页面的模板; 它可以用于生成电子邮件,配置文件,源代码等。

前两个应用是控制台应用。 我们在 NetBeans 中创建新的 Maven Java 应用。 他们使用以下 Maven 构建文件:

 

在 Maven 文件中,我们指定 FreeMarker 依赖性。

插值是放在字符之间的表达式。 FreeMarker 会将输出中的插值替换为大括号内表达式的实际值。

在下面的示例中,我们使用 FreeMarker 模板文件来生成简单的文本输出。

Java FreeMarker

Figure: Java console project structure in NetBeans

这是 NetBeans 中的项目结构。

 

该示例将简单文本打印到控制台。 最终文本由模板引擎处理。

 

用于设置 FreeMarker 设置; 它以 FreeMarker 库的版本为参数。

 

设置将使用其方法来加载模板的类。

 

使用方法,我们检索模板文件。

 

数据模型已创建。 来自模型的数据将被动态放置到 FreeMarker 模板文件中。

 

方法使用提供的数据模型执行模板,并将生成的输出写入提供的写入器。

 

模板文件包含一个插值; 它将替换为生成的字符串。

 

这是应用的输出。

指令列出了数据集合。

下一个示例生成汽车列表。

 

我们有一个 bean。 它具有两个属性:名称和价格。

 

此示例是一个 Java 控制台程序,该程序使用 FreeMarker 动态创建包含汽车列表的文本输出。

 

在这里,我们创建对象的并将其放入数据模型。

 

模板文件包含一个指令,该指令打印汽车对象的属性。 使用点字符访问属性。

 

这是示例的输出。

FreeMarker 指令是执行动作的特殊标记。 指令有两种:内置指令和自定义指令。

标签创建一个新的普通变量。 可以使用构造对其进行访问。 变量在模板中创建。 如果数据模型中有一个同名变量,则模板变量会将其隐藏。

 

指令创建一个新的变量。 变量的值使用语法打印。

 

该示例打印此行。

可以使用,和伪指令完成模板节的条件处理。

 

该示例创建一个新的变量,并使用条件指令来测试该值。

 

这是输出。

指令用于遍历序列。

 

在示例中,我们将新的颜色名称序列分配给变量。 指令遍历集合并打印每个项目。

 

该示例给出了此输出。

 

在此示例中,我们创建一个哈希变量,并使用输出哈希的值和键。

 

The example gives this output.

当我们使用对空格不敏感的格式(例如 HTML 或 XML)时,指令会删除多余的空格

 

我们的文本带有空格,制表符和换行符。

 

该程序删除了所有多余的空白。

在下面的示例中,我们在标准 Java Web 应用中使用 FreeMarker。 该应用打包到文件中,并部署在 NetBeans 的内置 Tomcat 服务器上。

在 NetBeans 中,我们创建一个新的 Maven Web 应用。

Java FreeMarker

Figure: FreeMarker servlet project structure in NetBeans

这是 NetBeans 中 FreeMarker servlet 示例的项目结构。

 

在文件中,我们具有这两个依赖关系。

 

这是文件。

 

在文件中,我们设置并配置了 FreeMarker servlet。 有关每个选项的说明,请参考 FreeMarker 文档。

 

这是 bean,具有有关汽车对象的基本数据。

 

我们设置 servlet 并将其分发到模板文件。 我们创建了一个汽车并将其设置为请求。

 

文件位于目录中。 使用指令,我们显示了 cars 系列的所有元素。

Java FreeMarker

Figure: FreeMarker servlet example

我们在 Opera 网络浏览器中显示应用输出。 NetBeans 中的内置 Tomcat 在 8084 端口上运行。

Spark 是为快速开发而构建的简单轻便的 Java Web 框架。 默认情况下,Spark 在嵌入式 Jetty Web 服务器上运行,但可以配置为在其他 Web 服务器上运行。 为了将 FreeMarker 与 Spark 集成,我们使用,这是 Spark 的 Freemarker 模板引擎实现。

 

这是项目结构。

 

文件包含 Spark 模块和 FreeMarker 的依赖项。

 

我们为 FreeMarker 设置了相同的应用。

 

我们用类配置 FreeMarker。 模板文件将放置在目录中,该目录必须位于类路径上。

 

传递给方法。

 

用于设置视图名称和要渲染的模型对象。

 

这是模板文件; 它引用随对象传递的名称变量。

 

我们使用命令构建项目。

 

我们运行程序。 允许创建具有所有依赖项的可执行 JAR。

 

This is the output.

Spring 是流行的 Java 应用框架。 Spring Boot 是通过最小的努力来创建独立的,生产级的基于 Spring 的应用的产物。

在以下示例中,我们将 FreeMarker 集成到经典的 Spring 应用中。

 

这是我们经典的 Spring 应用的项目结构。

 

文件包含 Spring 模块和 FreeMarker 的依赖项。

 

在文件中,我们定义了 Spring ,它是 HTTP 请求处理程序的中央调度程序。

 

在 spring servlet 上下文 XML 文件中,我们定义了两个 bean:和。 这些是 FreeMarker 的配置 bean。 spring-servlet.xml 位于中。

 

Spring 将扫描软件包中的组件。

 

元素注册一个,该元素允许使用注释设置属性。 属性指示在哪里查找属性。

 

在文件中,我们有一个键/值对。 该值是应用的版本。 该文件位于目录中。

 

接口包含一个方法协定:。

 

返回应用的版本。

 

位于文件中的键的值被注入到属性中。

 

这是控制器类。

 

在方法(当带有 URL 的请求到达时被调用)中,我们调用 方法并将该值传递到中。 处理将分派到模板文件,在该文件中插入版本值。

 

这是文件。 它具有一个链接,该链接向服务器发送请求以获取应用的版本。

 

模板文件用于建立服务器对客户端的响应。

在下一个应用中,我们将 FreeMarker 集成到 Spring Boot Web 应用中。

Java FreeMarker

Figure: Spring Boot web project structure in NetBeans

这是在 NetBeans 中使用 FreeMarker 的 Spring Boot Web 应用的项目结构。 请注意,我们正在 NetBeans 中创建 Java SE Maven 应用,而不是 Java Web Maven 应用。 这是因为我们已将 Tomcat 嵌入到我们的 JAR 文件中。

 

这是 Maven 构建文件。 它包括 Spring Boot 和 FreeMarker 的依赖项。 无需在 Spring Boot 中配置 FreeMarker。 在 POM 文件中找到 FreeMarker 依赖关系后,Spring Boot 会自动进行配置。 创建带有嵌入式容器(默认为 Tomcat)的可执行 JAR。

 

设置 Spring Boot 应用。 注释执行三件事:1)将类定义为配置类,2)启用自动配置,3)启用组件扫描。

 

这是 Spring Boot Web 应用的控制器类。 控制器具有两个映射。 第一个映射解析为文件,第二个映射解析为文件。

 

这是文件。 它具有 HTML 表单,可将​​消息发送到服务器。

 

服务器以一条消息回应给客户端。 响应是从模板文件创建的。

Java FreeMarker

Figure: Spring Boot web example

Spring Boot 启动一个嵌入式 Tomcat 服务器,侦听端口 8080。

本教程专门针对 FreeMarker 模板引擎。

  • 上一篇: java宝典教程
  • 下一篇: java开发原生app教程
  • 版权声明


    相关文章:

  • java宝典教程2025-03-11 18:42:06
  • java调用webhook教程2025-03-11 18:42:06
  • java程序设计教程 清华2025-03-11 18:42:06
  • 易语言调用java教程2025-03-11 18:42:06
  • java简明教程chm2025-03-11 18:42:06
  • java开发原生app教程2025-03-11 18:42:06
  • 软件java设计教程2025-03-11 18:42:06
  • java项目详细教程2025-03-11 18:42:06
  • java软件教程2025-03-11 18:42:06
  • java如何自学教程2025-03-11 18:42:06