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


类似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快好几倍:

能够集成现有框架:

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