如何在Grizzly http服务器中设置Jersey的模板基本路径?

时间:2014-04-26 16:45:03

标签: java jersey grizzly

使用 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(), "/*");

1 个答案:

答案 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