Server Plugin
JTE
Ktor 允许你通过安装 Jte 插件,在应用程序中使用 JTE 模板 作为视图。
添加依赖项
要使用 Jte,你需要在构建脚本中包含 ktor-server-jte artifact:
Kotlin
Groovy
XML
要处理
.kte文件,你需要将gg.jte:jte-kotlinartifact 添加到你的项目中。
安装 Jte
要将 Jte 插件安装到应用程序, 请将其传递给指定
模块
中的 模块允许你通过分组路由来组织应用程序。
install 函数。 下面的代码片段展示了如何安装 Jte ... - ... 在
embeddedServer函数调用内部。 - ... 在显式定义的
module内部,它是一个Application类的扩展函数。
kotlin
kotlin
在 install 代码块内部,你可以配置如何加载 JTE 模板。
配置 Jte
配置模板加载
要加载 JTE 模板,你需要:
- 创建一个
CodeResolver用于解析模板代码。例如,你可以配置DirectoryCodeResolver从给定目录加载模板,或者配置ResourceCodeResolver从应用程序资源加载模板。 - 使用
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))
}