Skip to content
Server Plugin

JTE

所需依賴項io.ktor:ktor-server-jte

程式碼範例 jte

原生伺服器
Ktor 支援 Kotlin/Native,可讓您在無需額外執行時或虛擬機器下運行伺服器。
支援:✖️

Ktor 透過安裝 Jte 外掛,讓您可以在應用程式中使用 JTE 模板 作為視圖。

新增依賴項

若要使用 Jte,您需要在建構腳本中包含 ktor-server-jte 構件:

Kotlin
Groovy
XML

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

安裝 Jte

若要將 Jte 外掛 安裝 到應用程式, 請將其傳遞給指定

模組
模組可讓您透過群組化路由來建構您的應用程式。
中的 install 函數。 以下程式碼片段顯示如何安裝 Jte ...

  • ... 在 embeddedServer 函數呼叫內部。
  • ... 在明確定義的 module 內部,該 moduleApplication 類的擴展函數。
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))
}