我正在开发一个小型 quarkus 项目,该项目提供使用 qute 模板引擎创建的 HTML 页面。
我想知道是否可以将一些字符串常量值访问到模板,而不必将它们作为.data("key", value)
模板传递。
例如,我为查询参数定义了常量,我想在模板引擎生成的 HTML 中使用它们。
改编自官方指南Qute 是一个模板引擎
我的 JAX-RS 类/src/main/java/com/company/HelloResource.java
如下所示:
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.QueryParam;
import javax.ws.rs.core.MediaType;
import io.quarkus.qute.Template;
import io.quarkus.qute.TemplateInstance;
@Path("hello.html")
public class HelloResource {
@Inject
Template hello;
private static final String NAME_QUERY_PARAM = "name";
@GET
@Produces(MediaType.TEXT_HTML)
public TemplateInstance get(@QueryParam(NAME_QUERY_PARAM) String name) {
String helloStatement;
if (name == null) {
helloStatement = "Welcome!";
} else {
helloStatement = "Hello " + name + "!";
}
return hello.data("helloStatement", helloStatement);
}
}
hello 模板/src/main/resources/templates/hello.html
如下所示:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
</head>
<body>
<h1>{helloStatement}</h1>
<form action="./hello.html" method="GET">
<div>
<label for="name">The name:</label>
<input name="name" id="name" value="John">
</div>
<div>
<button>Say hi!</button>
</div>
</form>
</body>
</html>
对于<input>
我想写的标签:
<input name="{com.company.HelloResource.NAME_QUERY_PARAM}" id="name" value="John">
并com.company.HelloResource.NAME_QUERY_PARAM
在编译时替换为它的值。