2009-07-08 2 views
0

테스트 유틸리티를 작성 중 - 하나의 브라우저 창에 여러 개의 완성 된 HTML "페이지"를 표시하려고합니다.여러 개의 전체 HTML '파일'을 단일 출력 스트림에 씁니까?

이것이 가능합니까? 자바 서블릿을 사용하고 있습니다.

예를 들어 일반적으로 사용자는 유틸리티 화면으로 이동하여 일련의 필드를 채우고이를 내 서블릿에 전달합니다.이 서블릿은 입력을 기반으로 전체 HTML 스트림을 작성하고이를 HttpServletResponse.getWriter()에 씁니다. 사용자가 소스를 볼 때 <html> ... </html>이됩니다.

내가 원하는 것은 사용자가 여러 개의 "화면"을 요청하고 두 번째, 세 번째 등의 화면을보기 위해 아래로 스크롤 할 단일 웹 페이지에서 결과를 얻을 수 있도록 허용하는 것입니다. 사이의 분배기. 나는 프레임이나 iframe을 생각했지만 운이 없었습니다. 내 큰 HTML 스트림을 자바 스크립트 변수에 쓸 수있는 곳을 본 다음 document.write를 사용하여 iframe에 덤프합니다. 그러나 그것은 꽤 어색해 보입니다. 나는 따옴표와 물건을 벗어나는 것에 대해 정말로 조심해야합니다.

+0

프레임을 사용해 보았지만 "운이 없었어요." 작동하지 않는 것을 정교하게 해석 할 수 있습니까? – Ickster

+0

나는 썼다. print ("")를 수행했습니다. 그리고 첫 번째 이후에는 아무 것도 렌더링하지 않았습니다. –

답변

2

이렇게하려면 iframe이나 프레임을 사용해야합니다. 하나의 웹 페이지는 한 세트의 html 태그와 하나의 html 페이지만을 포함 할 수 있습니다.

또 다른 아이디어는 스크립트로 페이지를 렌더링 한 다음 이미지를 캡처 한 다음 이미지가 포함 된 페이지를 만드는 것입니다. 물론 페이지와의 모든 상호 작용이 느슨해집니다.

1

그냥이 어쩌면처럼 ....

을 각 페이지에 대한 <html>/</html> 태그를 떠나 하나의 큰 내부 전체를 포장 :

<html> 

[page1Content] 
<hr /> 
[page2Content] 
<hr /> 
[page3Content] 
<hr /> 

</html> 
+1

페이지 본문 태그 안에없는 모든 것을 구문 분석하면 간단한 페이지에서 잘 작동합니다. 그러나 페이지에 CSS 스타일이나 Javascript가 포함되어 있으면 페이지가 깨질 수 있습니다. 또한 그가 페이지의 유효성 검사에 관심이 있다면이 방법을 사용하는 것이 유효하지 않을 가능성이 있습니다. :) – MitMaro

+0

동의, 내 방법은 빠르고 더러운 접근 방식입니다. – Nate

+0

맞아요,하지만 각 페이지마다 잠재적으로 헤더에 별도의 CSS 정의가 있어야합니다.iframe은 이동하는 방법이며, src = 속성을 통해 프레임을 지정하지 않고 프레임 내에 내 콘텐츠를 가져 오는 방법을 알지 못한다고 생각합니다. –

2

을 당신이있어 모르겠어요 당신의 프레임을 가지고 노력했지만, 당신이 묘사 한 것에 대해 프레임은 정상적으로 작동 할 것이라고 상상합니다.

양식에서 둘 이상의 URL에 게시하는 대신 프레임 세트가 포함 된 페이지를 반환하는 서블릿에 게시하면 각 프레임에 테스트 할 URL 중 하나를 가리키는 소스가 있습니다. 예를 들면 :

<form action="testServlet" method="post"> 
    <input type="text" name="someValue" /> 
</form> 
다음이 콘텐츠와 페이지를 반환합니다 testServlet

:

<frameset rows="33%,33%,33%"> 
    <frame src="testUrl1?someValue=value"> 
    <frame src="testUrl2?someValue=value"> 
    <frame src="testUrl3?someValue=value"> 
</frameset> 

이 유일한 문제는 당신이 대신 POSTGET을하고있는 것입니다,하지만 쉽게 얻을 수 있어요 약. 서블릿 내에 doGet 메소드를 구현하고 을 doGet에서 호출하기 만하면됩니다.

+0

팁을 주셔서 감사합니다. –

+0

도와 드리겠습니다. 필요한 경우 무엇이든 명확하게 요구하십시오. – Ickster

관련 문제