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

时间:2013-07-16 10:45:53

标签: spring jsp spring-mvc

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

如何实现这一目标?

我尝试过PrintWriter对象的print方法。但它不起作用。我的下列代码有什么错误吗?

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,并且只是按原样打印输出流的内容。

2 个答案:

答案 0 :(得分: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..

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

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

答案 1 :(得分:0)

有效的方法如下。

  1. 设置contentType(“text / html”)
  2. 在ftp.retrieveFile(远程,输出)之后,outputStream对象中没有修改;行
  3. 返回null ModelAndView。