我一直在寻找但找不到文档:
有没有办法让页面呈现没有包装HTML元素的响应,只打印tml正文中提供的内容,或者在@BeginRender期间在MarkupWriter.write中设置的内容?
我需要一个页面来执行一些服务器端处理并返回纯javascript以供外部应用程序请求。
如果这是不可能的,是否可以将tapestry Ioc暴露给同一个应用程序中的servlet?
谢谢,p。
答案 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
代替@BeginRender
。 Here是API文档的链接。
修改:如果您不希望文档包含除文本内容之外的任何内容,则此处是实现此目的的一种方法。
@Inject
private Response response
void onActivate() throws IOException {
PrintWriter writer = response.getPrintWriter("text/html");
writer.append("foobar");
writer.close();
}