스트럿츠2 + sitemesh 사용시 action을 include 시켜보자

간편하다해서 붙인 sitemesh 문제가 많은건지 내가 문제가 많은건지 모르겠다

여튼... 평소 jsp에서 다른 페이지를 붙이고 싶을때는 <jsp:include page/> 태그를 사용했었다

별 문제없이 쓰고 있었는데 이번 스트럿츠2 + sitemesh 에서 include 태그 신공이 안먹었고 나에겐 그저

500 에러만이 고만 좀 부르라고 열내고 있었다 ㅡ,.ㅡ;;;


이때부터 2주간 삽질이 시작되었고 겨우 오늘 끝났다

sitemesh 태그중 <page:applyDecorator /> 태그를 이용해서 야매식으로 페이지를 불러냈다

a라는 페이지가 있는데 b라는 페이지를 include 시키고 싶은데 통상의 jsp include 태그를 사용 하면

sitemesh때문에 b라는 페이지 결과만 나오고 a라는 페이지가 사라져버렸다 물론 b라는 페이지는

스트럿츠2의 어떤 액션일것이다 해결법은 <page:applyDecorator/>태그를 이용하면 된다

일단 c라는 페이지를 하나 더 만들어 준다 그 페이지에서 액션을 <s:action> 태그를 이용해서 b액션을 불러온다

다시 a라는 페이지에서는 <page:applyDecorator/>태그를 이용해서 c라는 페이지를 불러온다

결론 a가 c를 불러오고 c는 b액션을 불러오게 되서 a + b 의 페이지가 완성된다

물론 이방법을 쓰면 쓸대없이 페이지를 하나 더 만들게 되고 sitemesh의 xml 파일에 새로 만들어질 페이지를 추가해줘야된다

하지만 어떻해 다른 방법은 안되는데 T_T



===========
a 페이지 소스

<html>
<body>
b액션을 추가 하고 싶어

<page:applyDecorator page="/c페이지라오.jsp" name="strutsAction"/>
</body>
</html>

==============
decorators.xml 소스

<decorator name="strutsAction" page="/c페이지라오.jsp"/>

==============
c페이지라오.jsp 소스

<s:action namespace="/" name="원하는 스트럿츠 액션" executeResult="true"/>




덧글

댓글 입력 영역