0

我有一个包含(HTML 格式)数据的 OutputStream 对象。我只需要在 jsp 上显示这些数据。我正在使用弹簧框架。

如何做到这一点?

我已经尝试过 PrintWriter 对象的打印方法。但它不起作用。我的以下代码有什么错误吗?

OutputStream output = new ByteArrayOutputStream();
ftp.retrieveFile(remote, output); //output stream obj is generated from fetching html file from ftp server. 
PrintWriter objPrintWriter = response.getWriter();
objPrintWriter.println(output.toString());

我可以使用当前的 Response 对象创建一个动态视图,应用程序中没有任何 jsp 并且它只是按原样打印输出流的内容。

4

2 回答 2

0

工作如下。

  1. 设置 contentType("text/html")
  2. 在 ftp.retrieveFile(remote, output) 之后没有修改 outputStream 对象;线
  3. 返回空模型和视图。
于 2013-07-18T05:05:53.420 回答
0

OutputStream 不是用来读取信息的,而是用来写入的。因此,从逻辑上讲,不可能有一个“包含数据”的 OutputStream。

您可能想要的是从 InputStream 读取数据并显示到 JSP 中。一种实现方法是将所有数据转储到 String 中,并在分派到 JSP 之前将其作为请求属性传递

BufferedReader reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream()));
StringBuffer sb = new StringBuffer();
while((line = reader.readLine()) != null) {
  sb.append(line);
}
request.setAttribute("data", sb.toString());
// dispatch to jsp..

(代码可能无法编译/包含错误)

免责声明,如果字符串内容很大,这不是一个好方法

于 2013-07-16T10:54:09.217 回答