我使用Mustache.java并且找不到设置HTML标头的简单方法。我想设置content="text/html
例如。
我用于呈现胡须文件的Java代码是:
@Path("/home")
@GET
public static String getIndexPage(){
MustacheFactory mf = new DefaultMustacheFactory();
Mustache mustache = mf.compile(MustacheFileName);
StringWriter b = new StringWriter();
try {
mustache.execute(b, new MustacheObject()).flush();
} catch (IOException e) {
e.printStackTrace();
}
return b.toString();
}
备注:
我正在使用Jersey
返回HTML内容为text/plain
(在Chrome浏览器中使用开发工具检查)
我目前的解决方案是设置MustacheFileName
:
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
...
</head>
那么,有没有一种优雅的方法来代替在HTML模板文件中手动设置呢?
答案 0 :(得分:2)
你的问题似乎与胡子无关。然而,使用普通的泽西REST应用程序机制,你将转而返回一个Response对象而不是一个简单的字符串,如下所示:
import javax.ws.rs.core.Response;
@Path("/home")
@GET
public static Response getIndexPage(){
MustacheFactory mf = new DefaultMustacheFactory();
Mustache mustache = mf.compile(MustacheFileName);
StringWriter b = new StringWriter();
try {
mustache.execute(b, new MustacheObject()).flush();
} catch (IOException e) {
e.printStackTrace();
}
return Response.ok()
.entity(b.toString())
.header("whatever-header-you-need", "... its value")
.build();
}
答案 1 :(得分:1)
我找到了一个优雅的解决方案:
定义生成GET
的{{1}}方法:
MediaType.TEXT_HTML