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 範本,您需要:
- 建立一個
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))
}