IntelliJ IDEA 2025.1 Help

模板语言:Velocity 和 FreeMarker

IntelliJ IDEA 让您在 Velocity (VTL)和 FreeMarker (FTL)中开发模板。

代码辅助和语法高亮依赖于 Apache VelocityFreeMarker 插件,这些插件默认情况下在 IntelliJ IDEA 中捆绑和启用。 如果相关功能不可用,请确保您没有禁用插件。 如需更多信息,请参阅 打开插件设置

模板语言指令自动完成
模板语言变量补全

默认支持以下文件类型:

VTL

.ft .vm .vsl

FTL

.ftl .ftlh .ftlx

要启用模板静态部分编写的语言的代码辅助(这些语言称为 模板数据语言 ),请执行以下操作之一:

将模板数据语言与项目中的文件和文件夹关联

  1. 设置 对话框 (Ctrl+Alt+S) 中,点击 语言和框架 ,然后点击 模板数据语言

  2. 点击项目或相应目录或文件右侧的模板数据语言单元格,然后选择语言。

  3. 点击 OK 以应用更改。

可以直接在编辑器中使用 将模板数据语言更改为 上下文菜单命令为单个模板文件分配模板数据语言。

为相应的文件类型添加扩展模式

  1. 设置 对话框 (Ctrl+Alt+S) 中,点击 编辑器 ,然后点击 文件类型

  2. 识别的文件类型 下,选择 FreeMarker 模板Velocity 模板

  3. 文件名模式 下,点击

  4. 添加通配符 对话框中,指定文件名扩展模式,选择一种语言,然后点击 OK

    velocity_add_pattern
  5. 点击 OK 以应用更改。

修复未解析的引用

IntelliJ IDEA 提供用于检测模板语言中未解决引用的 检查

未解析引用的示例模板语言检查

未解析的引用可以通过使用 intention actions来修复。 您可以选择在同一个文件中添加注释,或者创建一个单独的文件来存放注释。 更多信息请参阅 Special comments

修复未解析引用的示例模板语言用途

在后者的情况下,将创建一个默认名称为 velocity_implicit.vmfreemarker_implicit.ftl 的文件。 此文件以以下注释开头:

#* @implicitly included *#

注释文件中提供了定义引用类型的代码补全功能。

如果您重命名文件或将其移动到源根目录内的不同位置,引用定义将不会丢失。

特殊注释

IntelliJ IDEA 提供了以下用于模板语言的特殊注释:

FreeMarker 注释使用 <#---->[#----#] 进行分隔。

评论

描述

@implicitly included

任何以该注释开头的 FreeMarker 文件都会包含在同一模块或其依赖项中的所有文件中。 使用这样的专用注释文件来定义 IDE 特定的注释,以免它们污染您的模板文件。

@ftlvariable

定义变量。 例如,以下注释声明了一个名为 foo 的变量,类型为 String ,仅在指定文件中可见:

<#-- @ftlvariable name="foo" type="java.lang.String" file="path/to/file" -->

要在这种情况下正确解析 String ,模块应附有 JDK。 支持原始类型和泛型类型。 file 参数是可选的。

@ftlroot

定义了相对于其解析 importinclude 指令的路径。 路径是相对于当前 FTL 文件包中的任何目录指定的。 JAR 文件内的路径也支持,例如:

<#-- @ftlroot "path/to.jar!/path/inside/jar" -->

Velocity 注释使用 #**# 进行分隔。

评论

描述

@implicitly included

任何以此注释开头的 Velocity 文件将包含在同一模块中的所有文件中。 使用这样的专用注释文件来定义 IDE 特定的注释,以免它们污染您的模板文件。

@vtlvariable

定义变量。 例如,以下注释声明了一个名为 foo 的变量,类型为 String ,仅在指定文件中可见:

#* @vtlvariable name="foo" type="java.lang.String" file="path/to/file" *#

要在这种情况下正确解析 String ,模块应附有 JDK。 支持原始类型和泛型类型。 file 参数是可选的。

@vtlmacrolibrary

定义与此注释文件相关的模板宏文件。 例如,以下注释使 lib.vm 的宏在 file.vm 中可用于代码洞察:

#* @vtlmacrolibrary path="lib.vm" file="file.vm" *#

@velocityproperties

定义 velocity.properties 文件和运行时相对于带有此注释的文件的根目录。 例如:

#* @velocityproperties path=”path/to/velocity.properties” runtime_root=”path/to/runtime/root/dir” *#
最后修改日期: 2025年 4月 24日