我必须在使用Tapestry5的项目中实现OAuth协议的服务提供程序。因此,我只需要返回一个非常简单的HTTP响应主体,它既不是HTML也不是JSON。
起初我尝试使用标准的tml& pojo(java class,page)方法,但这不起作用,因为Tapestry试图解析模板。
所以我想我必须尝试不同的东西。也许可以在页面中使用render()方法?但我找不到任何可以回答这个问题的文件。
或者我应该使用另一个更符合我需求的框架?
感谢您的建议,
理查德
答案 0 :(得分:4)
StreamResponse onActivate() {
return new TextStreamResponse("text/plain", "foo=bar");
}
答案 1 :(得分:3)
您可以直接从页面流式传输文本,而无需使用模板:
StreamResponse onActivate() {
return new StreamResponse(
public String getContentType() {
return "text/plain";
}
public InputStream getStream() {
return new ByteArrayInputStream("foo=bar".getBytes());
}
public void prepareResponse(Response response) {
// response.setHeader(...
}
}
如果你是为很多页面做的,我认为你可以贡献自己的DocumentLinker,它可以让你绕过Tapestry默认添加到页面的所有xml / html / head内容。然后你可以回到使用模板。