2013-07-16 2 views
0

(HTML 형식) 데이터가 포함 된 OutputStream 객체가 있습니다. 이 데이터 만 jsp에 표시해야합니다. 나는 스프링 프레임 워크를 사용하고있다.JSP의 컨트롤러에서 동적 HTML 내용을 표시합니다.

어떻게해야합니까?

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()); 

저는 응용 임의 JSP 존재가되지 않은 그리고 그것이 단순히 출력 스트림의 내용을 출력하는 전류 반응 오브젝트를 사용하여 생성 동적 뷰를 가질 수있다.

답변

0

OutputStream은 정보를 읽는 것이 아니라 쓰는 것이 목적입니다. 따라서 논리적으로 "데이터가 포함 된"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.. 

을 파견하기 전에 요청 속성으로 전달하는 것입니다, 이것은 좋은 방법이 아닙니다 문자열 내용이 큰 경우

+0

감사합니다. 데이터는 ftp에서 가져 오므로 출력 스트림 객체에 있습니다. 그리고 그것은 큰 데이터가 될 것입니다 ... 나는 현재의 Response 객체를 사용하여 생성 된 동적 뷰를 가질 수 있습니다. 애플리케이션에 jsp가없고 출력 스트림의 내용을 그대로 출력합니다. – shraddha

+1

당신은 질문 제목에 대해 말한 것과 모순이 될 수 있습니다. 출력에서 작가를 얻으시면 inputstream에서 얻은 각 행에 대해'write' 메소드를 호출 할 수 있습니다. – gerrytan

+0

다음과 같이 작동합니다. 1. contentType ("text/html") 설정 2. ftp.retrieveFile (remote, output) 다음에 outputStream 객체가 수정되지 않았습니다. line 및 3. null을 반환 ModelAndView – shraddha

0

효과가있는 것은 다음과 같습니다. contentType이 ("텍스트/HTML")를 설정

  1. ftp.retrieveFile (원격 출력) 이후의 OutputStream 객체의 변경없이; 줄
  2. null ModelAndView를 반환합니다.
관련 문제