tapestry5页面用于呈现纯文本

时间:2010-05-26 03:22:09

标签: tapestry

我一直在寻找但找不到文档:

有没有办法让页面呈现没有包装HTML元素的响应,只打印tml正文中提供的内容,或者在@BeginRender期间在MarkupWriter.write中设置的内容?

我需要一个页面来执行一些服务器端处理并返回纯javascript以供外部应用程序请求。

如果这是不可能的,是否可以将tapestry Ioc暴露给同一个应用程序中的servlet?

谢谢,p。

2 个答案:

答案 0 :(得分:5)

抱歉ponzao,但我在挂毯邮件列表上找到了Thiago提供的更好的解决方案:

public class MyPage
{
    StreamResponse onActivate()
    {
        return new TextStreamResponse("text/plain", "some text");
    }
}

这样您就不需要恢复到servlet API而且不需要tml。

改编自此,例如: http://wiki.apache.org/tapestry/Tapestry5HowToCreateADynamicPDF

答案 1 :(得分:2)

一种可能性是在MarkupWriter.writeRaw中使用MarkupWriter.write代替@BeginRenderHere是API文档的链接。

修改:如果您不希望文档包含除文本内容之外的任何内容,则此处是实现此目的的一种方法。

@Inject
private Response response

void onActivate() throws IOException {
    PrintWriter writer = response.getPrintWriter("text/html");
    writer.append("foobar");
    writer.close();
}