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