jsp:include 페이지 request 공유
- 작성자 :
- 박*우
- 작성일 :
- 2012-07-03 10:19:46
- 조회수 :
- 2,486
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
현재 전자정부프레임워크로 개발하고 있는 개발자입니다.
프로그램 개발 중 spring(*.do)으로 로드 되는 jsp:include 페이지에서 선언한 request.setAttribute 내용이 다른 페이지에서 공유가 되지 않아 어려움을 격고 있습니다.
application 이나 session은 공유가 되나 request의 attribute는 공유가 되지 않고 있습니다.
application이나 session은 프로그램 및 해당 라이프타임이 만료되기 전까지 계속 데이터가 살아 있어 request를 이용한 페이지라이프타임만 사용하고 싶어서 request attribute를 사용 하려 합니다.
제가 테스트한 내용은
-------------------------------------------------------------
main.do 파일
<jsp:include page="includeA.do"></jsp:include>
<jsp:include page="includeB.do"></jsp:include>
<p>Request(main.do) : <%=request.getAttribute("TXT")%></p>
includeA.do 파일
<%
request.removeAttribute("TXT");
request.setAttribute("TXT", "텍스트");
%>
includeB.do 파일
<p>Request(includeB.do) : <%=request.getAttribute("TXT")%></p>
---------------------------------------------------------------
이렇게 사용 하였으며 결과는
Request(main.do) : null
Request(includeB.do) : null
이렇게 출력 되었습니다.
위의 *.do 파일을 절대경로로 *.jsp로 변경 하였을 때는
Request(main.do) : 텍스트
Request(includeB.do) : 텍스트
이렇게 제대로 출력 되었습니다.
전자정부프레임워크 설정은 어노테이션 방식으로 설정하여 사용하고 있습니다.
위 방식을 처리 못하여 session 이나 application 라이프타임을 사용하여
구현하고 있습니다.
부디 방법을 알려 주시면 감사하겠습니다.
마지막으로 제가 사용하고 있는 'dispatcher-servlet.xml'
파일을 첨부 하여 보내 드립니다.
프로그램 개발 중 spring(*.do)으로 로드 되는 jsp:include 페이지에서 선언한 request.setAttribute 내용이 다른 페이지에서 공유가 되지 않아 어려움을 격고 있습니다.
application 이나 session은 공유가 되나 request의 attribute는 공유가 되지 않고 있습니다.
application이나 session은 프로그램 및 해당 라이프타임이 만료되기 전까지 계속 데이터가 살아 있어 request를 이용한 페이지라이프타임만 사용하고 싶어서 request attribute를 사용 하려 합니다.
제가 테스트한 내용은
-------------------------------------------------------------
main.do 파일
<jsp:include page="includeA.do"></jsp:include>
<jsp:include page="includeB.do"></jsp:include>
<p>Request(main.do) : <%=request.getAttribute("TXT")%></p>
includeA.do 파일
<%
request.removeAttribute("TXT");
request.setAttribute("TXT", "텍스트");
%>
includeB.do 파일
<p>Request(includeB.do) : <%=request.getAttribute("TXT")%></p>
---------------------------------------------------------------
이렇게 사용 하였으며 결과는
Request(main.do) : null
Request(includeB.do) : null
이렇게 출력 되었습니다.
위의 *.do 파일을 절대경로로 *.jsp로 변경 하였을 때는
Request(main.do) : 텍스트
Request(includeB.do) : 텍스트
이렇게 제대로 출력 되었습니다.
전자정부프레임워크 설정은 어노테이션 방식으로 설정하여 사용하고 있습니다.
위 방식을 처리 못하여 session 이나 application 라이프타임을 사용하여
구현하고 있습니다.
부디 방법을 알려 주시면 감사하겠습니다.
마지막으로 제가 사용하고 있는 'dispatcher-servlet.xml'
파일을 첨부 하여 보내 드립니다.
A
안녕하세요.. 박재우님..
jsp:include는 별도의 request로 처리되기 때문에.. request의 정보를 보존하지 못합니다..
이런 경우는
<jsp:include />의 하위 <jsp:param />을 통해서.. 파라미터로 필요한 데이터를 던지셔야 합니다. (몰론 include된 페이지에서 정보를 외부쪽 jsp에 보낼 수 없음)
또는 <%@include ..%>를 통한 소스의 include 하신 방식도 활용가능하실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
jsp:include는 별도의 request로 처리되기 때문에.. request의 정보를 보존하지 못합니다..
이런 경우는
<jsp:include />의 하위 <jsp:param />을 통해서.. 파라미터로 필요한 데이터를 던지셔야 합니다. (몰론 include된 페이지에서 정보를 외부쪽 jsp에 보낼 수 없음)
또는 <%@include ..%>를 통한 소스의 include 하신 방식도 활용가능하실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.