我有以下模板扩展:
package com.company;
import io.quarkus.qute.RawString;
import io.quarkus.qute.TemplateExtension;
@TemplateExtension
public class TemplateExtensions {
static RawString myMethod(Input input, String someEnumName) {
SomeEnum value = SomeEnum.valueOf(someEnumName);
//...
return new RawString("...");
}
}
使用此枚举:
package com.company;
public enum SomeEnum {
LOREM,
IPSUM;
}
在我的模板中,我执行以下操作:
{input.myMethod('LOREM')}
这很好用,但我想知道如何以及是否可以直接使用枚举值:
package com.company;
import io.quarkus.qute.RawString;
import io.quarkus.qute.TemplateExtension;
@TemplateExtension
public class TemplateExtensions {
static RawString myMethod(Input input, SomeEnum value) {
//...
return new RawString("...");
}
}
我努力了:
{input.myMethod(com.company.SomeEnum.LOREM)}
但这会产生:
NOT_FOUND
你好资源:
package com.company;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import io.quarkus.qute.Template;
import io.quarkus.qute.TemplateInstance;
@Path("/hello")
public class ExampleResource {
@Inject
Template helloTemplate;
@GET
@Path("/index.html")
public TemplateInstance index() {
return helloTemplate.data("input", new Input());
}
}
和输入类:
package com.company;
public class Input {
String foo = "bar";
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
this.foo = foo;
}
}