netrainbow 2009-10-12 00:53
浏览 471
已采纳

Struts2下,我能得到ServletOutputStream,它里面是一个html页面,怎样把这个流输出到浏览器?

Struts2下,我能得到ServletOutputStream,它里面是一个html页面,怎样把这个流输出到浏览器?
当使用out.flush()时不起作用。系统仍然转向struts.xml里设置的页面。
[b]问题补充:[/b]
我也不想这样写。这个需求是把数据库里的记录做成表格,以pdf或html方式传回到客户端。

程序中用了iText,它可以生成包含了pdf或html文档在内的ServletOutputStream. 用servlet将流传回到浏览器没问题,但现在要在struts2框架里实现。
在struts2下,生成pdf并传回到浏览器没问题,但html就不行了。它总是去调用struts.xml里配置的页面。
我尝试用stream来解决,但它显示的是html源码。
有没有办法直接把ServletOutputStream发送到浏览器端?

  • 写回答

3条回答 默认 最新

  • CaiHuajiang 2009-10-12 09:29
    关注

    在struts中是可以直接输出字符流的,你可能是ServletOutputStream对象拿错了。我一般拿该对像是从response中拿的,再从response中拿writer或outputstream输出流。给个例子:
    [code="java"] private void outPut(String str) {
    try {
    ServletActionContext.getResponse().setContentType(
    "text/html;charset=utf-8");
    ServletActionContext.getResponse().setHeader("Cache-Control",
    "no-cache");
    ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
    PrintWriter out = ServletActionContext.getResponse().getWriter();
    out.print(str);
    out.flush();
    out.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误