Skip to content
Server Plugin

JTE

所需依赖项: io.ktor:ktor-server-jte

代码示例: jte

原生服务器
模块允许你通过分组路由来组织应用程序。
支持: ✖️

Ktor 允许你通过安装 Jte 插件,在应用程序中使用 JTE 模板 作为视图。

添加依赖项

要使用 Jte,你需要在构建脚本中包含 ktor-server-jte artifact:

Kotlin
Groovy
XML

要处理 .kte 文件,你需要将 gg.jte:jte-kotlin artifact 添加到你的项目中。

安装 Jte

要将 Jte 插件安装到应用程序, 请将其传递给指定

模块
模块允许你通过分组路由来组织应用程序。
中的 install 函数。 下面的代码片段展示了如何安装 Jte ...

  • ... 在 embeddedServer 函数调用内部。
  • ... 在显式定义的 module 内部,它是一个 Application 类的扩展函数。
kotlin
kotlin

install 代码块内部,你可以配置如何加载 JTE 模板。

配置 Jte

配置模板加载

要加载 JTE 模板,你需要:

  1. 创建一个 CodeResolver 用于解析模板代码。例如,你可以配置 DirectoryCodeResolver 从给定目录加载模板,或者配置 ResourceCodeResolver 从应用程序资源加载模板。
  2. 使用 templateEngine 属性指定模板引擎,它使用已创建的 CodeResolver 将模板转换为原生 Java/Kotlin 代码。

例如,下面的代码片段使 Ktor 能够在 templates 目录中查找 JTE 模板:

kotlin
import gg.jte.TemplateEngine
import gg.jte.resolve.DirectoryCodeResolver
import io.ktor.server.application.*
import io.ktor.server.jte.*
import java.nio.file.Path

fun Application.module() {
    install(Jte) {
        val resolver = DirectoryCodeResolver(Path.of("templates"))
        templateEngine = TemplateEngine.create(resolver, gg.jte.ContentType.Html)
    }
}

在响应中发送模板

假设你在 templates 目录中有 index.kte 模板:

html
@param id: Int
@param name: String
<html>
    <body>
        <h1>Hello, ${name}!</h1>
    </body>
</html>

要将模板用于指定的路由,请按照以下方式将 JteContent 传递给 call.respond 方法:

kotlin
get("/index") {
    val params = mapOf("id" to 1, "name" to "John")
    call.respond(JteContent("index.kte", params))
}