我想直接将页面内容作为一个流/或来自Page.class的字符串。
目前:我必须经历这条路线:
String uri = linkSource.createPageRenderLink(AnotherPage.class).toAbsoluteURI();
IOUtils.toString(uri, "UTF-8")
这种方法的问题是对toAbsoluteURI()
的调用使得框架感觉来自外部源的请求;并要求用户再次登录;不应该是这种情况,因为它的一个tapestry页面在同一个应用程序中访问另一个。
注意:我没有尝试"重定向"到AnotherPage.class
。我只想将另一个页面的内容作为字符串,而不必通过toAbsoluteURI()
等。
或者,将另一个页面的内容作为Stream也可以使用。
我正在使用Apache Tapestry 5.4.1
答案 0 :(得分:0)
看一下tapestry-offline模块。它允许您从Tapeatry生成的页面轻松获取HTML。
答案 1 :(得分:0)
让方法onActivate
返回StreamResponse
的实现,例如
public StreamResponse onActivate(Long productId) {
return new TextStreamResponse("text/csv", convertProductToCsv(productId));
}
默认情况下,页面会返回一个模板,但这样就会覆盖该行为。
查看此页面:https://wiki.apache.org/tapestry/Tapestry5HowToStreamAnExistingBinaryFile。