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