Spring 在JSP上显示控制器中的动态html内容

Spring 在JSP上显示控制器中的动态html内容,spring,jsp,spring-mvc,Spring,Jsp,Spring Mvc,我有一个OutputStream对象,其中包含(HTML格式)数据。我只需要在jsp上显示这些数据。我使用的是spring框架 如何做到这一点 我尝试了PrintWriter对象的打印方法。但它不起作用。我下面的代码有错误吗 OutputStream output = new ByteArrayOutputStream(); ftp.retrieveFile(remote, output); //output stream obj is generated from fetching html

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

如何做到这一点

我尝试了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());

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

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

您可能正在从InputStream读取数据并显示到JSP中。实现的一种方法是将所有数据转储到字符串中,并在发送到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..
(代码可能不编译/包含错误)


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

工作原理如下

  • 设置contentType(“文本/html”)
  • ftp.retrieveFile(远程,输出)后outputStream对象中没有修改;线
  • 返回null ModelAndView

  • 非常感谢。因为数据是从ftp获取的,所以它存在于输出流对象中。这将是一个巨大的数据。。。我可以使用当前响应对象创建一个动态视图,应用程序中不存在任何jsp,它只是按原样打印输出流的内容。您可以,尽管这与您在问题标题上所说的相矛盾。从response获取writer,您只需为从InputStream获取的每一行调用
    write
    方法即可。1.设置contentType(“文本/html”)2。ftp.retrieveFile(远程,输出)后outputStream对象中没有修改;第二行和第三行。返回null ModelAndView