Server Plugin
JTE
Ktor 透過安裝 Jte 外掛,讓您可以在應用程式中使用 JTE 模板 作為視圖。
新增依賴項
若要使用 Jte,您需要在建構腳本中包含 ktor-server-jte 構件:
Kotlin
Groovy
XML
若要處理
.kte檔案,您需要將gg.jte:jte-kotlin構件新增到您的專案。
安裝 Jte
若要將 Jte 外掛 安裝 到應用程式, 請將其傳遞給指定
模組
中的 模組可讓您透過群組化路由來建構您的應用程式。
install 函數。 以下程式碼片段顯示如何安裝 Jte ... - ... 在
embeddedServer函數呼叫內部。 - ... 在明確定義的
module內部,該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))
}