casid/jte:用於Java和Kotlin的Jsp/Java的Web模板引擎

banq發表於2022-02-28

類似Struts、SpringMVC、Freemarker、Thymeleaf、Velocity框架等Java Web框架。

jte 是用於 Java 和 Kotlin 的安全且輕量級的模板引擎。所有 jte 模板都編譯為 Java 類檔案,這意味著 jte 對您的應用程式的開銷基本上為零。jte 旨在引入儘可能少的新關鍵字,並建立在現有 Java 功能的基礎上,因此很容易推斷模板的作用。

IntelliJ 外掛為 Java 部分以及 jte 關鍵字提供完整的完成和重構支援。

@import org.example.Page

@param Page page

<head>
    @if(page.getDescription() != null)
        <meta name="description" content="${page.getDescription()}">
    @endif
    <title>${page.getTitle()}</title>
</head>
<body>
    <h1>${page.getTitle()}</h1>
    <p>Welcome to my example page!</p>
</body>

  • @import直接翻譯成Java匯入,在這個例子中,org.example.Page是模板已知的。
  • @param Page 頁是需要傳遞給這個模板的引數。
  • @if/@endif是一個if-block。大括號內的內容(page.getDescription() != null)是普通的Java程式碼。@JSP使用者。是的,在jte中存在@elseif()和@else 。
  • ${}寫到底層的模板輸出,從其他各種模板引擎中得知。

要渲染此模板,TemplateEngine需要一個 的例項。通常,您為每個應用程式建立一次(線上程之間共享引擎是安全的):

CodeResolver codeResolver = new DirectoryCodeResolver(Path.of("jte")); // This is the directory where your .jte files are located.
TemplateEngine templateEngine = TemplateEngine.create(codeResolver, ContentType.Html); // Two choices: Plain or Html

   

超快的執行速度(在 MacBook Pro 2015 上約 100k 渲染/秒,在 AMD Ryzen 5950x 上約 2M 渲染/秒)

相比Freemarker、Thymeleaf、Velocity框架,jte快好幾倍:

casid/jte:用於Java和Kotlin的Jsp/Java的Web模板引擎

能夠整合現有框架:

  • Javalin
  • Eclipse Vert.x
  • Spring Boot
  • Spring Web MVC
  • Micronaut
  • Quarkus
  • Severell

相關文章