我想开发一个由多个独立组件(自定义扩展)组成的 Quarkus 应用程序。现在,我需要每个扩展都有自己的qute模板;我怎样才能做到这一点?!
问问题
55 次
1 回答
0
这是一个解决方案:
把resources/templates/hello.html
这个类放在deployment
你的自定义扩展的一部分。
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.CompletionStage;
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.Engine;
import io.quarkus.qute.Template;
import org.apache.commons.io.IOUtils;
@Path("hi")
public class TestQuteTemplateInDeployment {
public Template getTemplateFromFile(String path2template) {
Engine engine = Engine.builder().addDefaults().build();
ClassLoader classLoader = getClass().getClassLoader();
String content = "<!doctype html><html></html>";
try {
InputStream inputStream = classLoader.getResourceAsStream(path2template);
content = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
} catch (Exception e) {
;
}
Template helloTemplate = engine.parse(content);
return helloTemplate;
}
@GET
@Produces(MediaType.TEXT_HTML)
public CompletionStage<String> get() {
return getTemplateFromFile("templates/hello.html").data("msg", "Hi! I'm Here.").renderAsync();
}
}
于 2021-05-04T08:25:35.737 回答