Java 将枚举值传递给Quarkus Qute中的模板扩展方法

Java 将枚举值传递给Quarkus Qute中的模板扩展方法,java,templates,extension-methods,quarkus,quarkus-qute,Java,Templates,Extension Methods,Quarkus,Quarkus Qute,我有以下模板扩展: package.com公司; 导入io.quarkus.qute.RawString; 导入io.quarkus.qute.TemplateExtension; @模板扩展 公共类模板扩展{ 静态RawString myMethod(输入,字符串名称){ SomeEnum value=SomeEnum.valueOf(someEnumName); //... 返回新的原始字符串(“…”); } } 使用此枚举: package.com公司; 公共枚举SomeEnum{ 洛勒

我有以下模板扩展:

package.com公司;
导入io.quarkus.qute.RawString;
导入io.quarkus.qute.TemplateExtension;
@模板扩展
公共类模板扩展{
静态RawString myMethod(输入,字符串名称){
SomeEnum value=SomeEnum.valueOf(someEnumName);
//...
返回新的原始字符串(“…”);
}
}
使用此枚举:

package.com公司;
公共枚举SomeEnum{
洛勒姆,
乱数假文;
}
在我的模板中,我执行以下操作:

{input.myMethod('LOREM')}
这非常有效,但我想知道如何以及是否可以直接使用枚举值:

package.com公司;
导入io.quarkus.qute.RawString;
导入io.quarkus.qute.TemplateExtension;
@模板扩展
公共类模板扩展{
静态RawString myMethod(输入,SomeEnum值){
//...
返回新的原始字符串(“…”);
}
}
我试过:

{input.myMethod(com.company.SomeEnum.LOREM)}
但这造成:

NOT_FOUND

你好资源:

package.com公司;
导入javax.inject.inject;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.products;
导入javax.ws.rs.core.MediaType;
导入io.quarkus.qute.Template;
导入io.quarkus.qute.TemplateInstance;
@路径(“/hello”)
公共类示例资源{
@注入
模板helloTemplate;
@得到
@路径(“/index.html”)
公共模板实例索引(){
返回helloTemplate.data(“input”,new input());
}
}
和输入类:

package.com公司;
公共类输入{
字符串foo=“bar”;
公共字符串getFoo(){
返回foo;
}
公共void setFoo(字符串foo){
this.foo=foo;
}
}

我也需要这样做,我通过搜索Quarkus的Github问题找到了答案。你可以用它来做

向枚举中添加如下方法:

@TemplateExtension(namespace=“SomeEnum”,matchName=ANY)
静态SomeEnum getVal(字符串val){
返回SomeEnum.valueOf(val.toUpperCase());
}
然后在模板中,可以使用
{SomeEnum:LOREM}