Skip to content
Server Plugin

JTE

必要的相依性io.ktor:ktor-server-jte

程式碼範例 jte

Native 伺服器
Ktor 支援 Kotlin/Native,並允許您在沒有額外執行階段或虛擬機的情況下執行伺服器。
支援:✖️

Ktor 允許您透過安裝 Jte 外掛程式,在您的應用程式中將 JTE 範本 作為檢視使用。

新增相依性

若要使用 Jte,您需要在組建指令碼中包含 ktor-server-jte 構件:

Kotlin
Groovy
XML

若要處理 .kte 檔案,請將 gg.jte:jte-kotlin 構件新增至您的專案:

Kotlin
Groovy
XML

目前的 jte‑kotlin 編譯器外掛程式與 Kotlin 2.3.x 不相容。 由於 Ktor 3.4.0 使用 Kotlin 2.3 工具鏈,在 jte‑kotlin 外掛程式增加對 Kotlin 2.3 的支援之前,無法使用 Ktor JTE 外掛程式。

如果您依賴 JTE,請在 jte‑kotlin 針對 Kotlin 2.3 更新之前,使用 Kotlin 2.2.x 與相容的 Ktor 版本。

安裝 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))
}