编程语言
首页 > 编程语言> > java-在jersey上使用胡须模板

java-在jersey上使用胡须模板

作者:互联网

我想将基于Mustache的模板与Jersey 2集成在一起.

在我的pom.xml中,我有:

<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-mvc-mustache</artifactId>
<version>2.9</version>
</dependency>

我的资源类如下所示:

@Path(value = "/appstatus")
public class AppStatusChecker
{

    @Template(name = "/index.mustache")
    @GET
    public Context getStatus() {
        return new Context(4);
    }

    public static class Context {
        public Integer value;

        public Context(final Integer value) {
           this.value = value;
        }
    }
}

在我的web.xml中,我有以下内容:

<init-param>
    <param-name>jersey.config.server.mvc.templateBasepath.mustache</param-name>
    <param-value>/templates</param-value>
</init-param>

部署应用程序时,在WEB-INF / classes下,我有一个文件夹模板,其中带有index.mustache.内容是:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Simple mustache test</title>
  </head>
  <body>
    <h1>This is mustacheee</h1>
    {{value}}
  </body>
</html>

调用myapp / appstatus URL后,我看到的是:{“ value”:4},但是我希望有一些HTML.我缺少设置的一些重要部分吗?

解决方法:

我必须像这样注册我的提供者:

    final ResourceConfig rc = new ResourceConfig().property(
            MustacheMvcFeature.TEMPLATE_BASE_PATH, "templates"
    ).register(
            MustacheMvcFeature.class
    ).packages("com.example");

    return GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);

不知道您是否正在使用Grizzly.但是,也许这会帮助某人.

https://jersey.java.net/documentation/latest/mvc.html#mvc.registration

标签:template-engine,jersey-2-0,mustache,java
来源: https://codeday.me/bug/20191029/1959796.html