2

如何将信息放入 Tapestry5 的输出流中?

当用户进入它时我需要一个页面打开一个对话框以保存或打开带有输出流信息的文件。

我写下一段代码:

公共类索引{

@Inject
private RequestGlobals requestGlobals;

@OnEvent("activate")
public void onActivate() {
    try {
        HttpServletResponse response = requestGlobals.getHTTPServletResponse();
        response.setContentType("text/txt");
        PrintWriter out = response.getWriter();
        out.println("hellooooooo");
        out.flush();
    } catch (IOException ex) {
        Logger.getLogger(Index.class.getName()).log(Level.SEVERE, null, ex);
    }
}

}

我希望结果只是“helloooooooo”但是(“helloooooooo”+我的html原始页面)

4

2 回答 2

3

您的方法应该具有 StreamResponse 的返回类型。您返回接口 StreamResponse 的实现,该接口简单地返回您想要的数据以及您想要的内容类型。

在这里查看:

http://tapestry.apache.org/tapestry5/apidocs/

更多信息在这里:

http://tapestry.formos.com/nightly/tapestry5/tapestry-core/guide/pagenav.html

于 2008-11-17T19:56:32.653 回答
1

如果您正在处理大型响应流,则使用StreamResponse可能会有些不便且效率低下(因为您必须返回InputStream)。最好将响应直接写入OutputStream

幸运的是,在 Tapestry Wiki 中有一个页面可以解决这个问题:Tapestry5: How To Create A Component Event Result Processor

于 2011-10-30T20:49:48.657 回答