在Tapestry 5中返回非HTML,非JSON http主体?

时间:2010-08-16 18:13:57

标签: java oauth tapestry

我必须在使用Tapestry5的项目中实现OAuth协议的服务提供程序。因此,我只需要返回一个非常简单的HTTP响应主体,它既不是HTML也不是JSON。

起初我尝试使用标准的tml& pojo(java class,page)方法,但这不起作用,因为Tapestry试图解析模板。

所以我想我必须尝试不同的东西。也许可以在页面中使用render()方法?但我找不到任何可以回答这个问题的文件。

或者我应该使用另一个更符合我需求的框架?

感谢您的建议,

理查德

2 个答案:

答案 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内容。然后你可以回到使用模板。