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
相关产品推荐
相关产品推荐

