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 함수 호출 내에서.
  • ... Application 클래스의 확장 함수인 명시적으로 정의된 module 내에서.
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>

지정된 경로에 템플릿을 사용하려면, 다음과 같이 JteContentcall.respond 메서드에 전달하세요:

kotlin
get("/index") {
    val params = mapOf("id" to 1, "name" to "John")
    call.respond(JteContent("index.kte", params))
}