You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus Qute模板片段的Kotlin类型安全定义方法咨询

在Kotlin中定义Qute模板片段的解决方案

Java中可以通过在方法名里添加$来区分主模板和对应的片段,但Kotlin语法不允许方法名包含$符号,这时候可以改用Qute提供的@TemplateSection注解来实现相同功能,无需在方法名中使用特殊字符。

正确的Kotlin代码示例

import io.quarkus.qute.CheckedTemplate
import io.quarkus.qute.TemplateInstance
import io.quarkus.qute.TemplateSection

@CheckedTemplate
private object Templates {
    // 主模板方法
    @JvmStatic
    external fun foo(a: Int, b: Int): TemplateInstance

    // 对应foo模板中的sectionA片段
    @JvmStatic
    @TemplateSection("sectionA")
    external fun fooSectionA(a: Int): TemplateInstance

    // 对应foo模板中的sectionB片段
    @JvmStatic
    @TemplateSection("sectionB")
    external fun fooSectionB(b: Int): TemplateInstance

    @JvmStatic
    external fun bar(): TemplateInstance
}

对应的模板文件示例(比如foo.html)

{#template foo}
主模板内容:a={a}, b={b}
{#section sectionA}
Section A内容:a={a}
{/section}
{#section sectionB}
Section B内容:b={b}
{/section}
{/template}

关键说明

  • @TemplateSection注解的参数值就是模板中定义的片段名称,对应Java写法里$后面的部分
  • 方法名可以自由命名,只要注解参数和模板片段名匹配即可
  • 必须保留@JvmStatic和external修饰符,作用等同于Java中的static native

内容的提问来源于stack exchange,提问作者Rattly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 09:25:01