使用 Apache Jersey 和 Grizzly http服务器,如何设置基本模板路径?
由于我没有使用Servlet容器,因此我使用绝对文件路径分配模板基本路径。但泽西回应了404。
以下是我的项目设置
项目目录:
src
└─ java
.....
└─ resources
└─ templates
└─ index.mustache
申请:
public class ExampleApplication extends ResourceConfig {
public CustomTableApplication() {
packages("com.example.app");
setupTemplateEngine();
}
private void setupTemplateEngine() {
property(MvcFeature.TEMPLATE_BASE_PATH, "/templates/");
register(MustacheMvcFeature.class);
}
}
控制器:
@Path("/")
public class Index {
@GET
@Template(name = "index")
public String index() {
return "";
}
}
我如何创建HttpServer :
HttpServer server = new HttpServer();
NetworkListener listener = new NetworkListener("example", "localhost", 8080);
server.addListener(listener);
ServerConfiguration config = server.getServerConfiguration();
config.addHttpHandler(createJerseyHandler(), "/*");
答案 0 :(得分:7)
我误解了泽西在解析模板名称时如何找到模板文件。
使用资源com.example.app.Index
和模板基本路径/templates
相对模板参考 @Template(name = "index")
/templates/com/example/app/Index/index.mustache
绝对模板参考 @Template(name = "/index")
/templates/index.mustache
请参阅文档了解更多详情 :19.3. Absolute vs. Relative template reference