tiles 답변에 대한 재 질문입니다..
- 작성자 :
- 최*용
- 작성일 :
- 2011-04-19 11:39:39
- 조회수 :
- 2,976
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
말씀하신데로 ViewPreparer 이용하여 개발을 하고있는데..
selectMainMenuLeft를 받아오려면
@RequestParam("vStartP") String vStartP 값을 받아와야하는데 받아 올 수가 없네요ㅠㅠ..
그리고 left, top메뉴만 import가능하다고 하셨는데..
import시 계속 로딩되는 문제도 있구요.,,
죄송하지만 다시한번만 잘못된곳좀 알려주세요,
<definition name=".default" template="/WEB-INF/jsp/egovframework/tmpl/layout.jsp" preparer="egovframework.com.sym.mms.web.EgovMainMenuManageController">
<put-attribute name="title" value="서비스모드" /><!-- 페이지 Title -->
<put-attribute name="top" value="/WEB-INF/jsp/egovframework/tmpl/top.jsp" /><!-- 메인메뉴(상단) 영역 -->
<put-attribute name="left" value="/WEB-INF/jsp/egovframework/tmpl/left.jsp" /><!-- 메뉴(왼쪽) 영역 -->
<put-attribute name="right" value="/WEB-INF/jsp/egovframework/tmpl/right.jsp" /><!-- 퀵메뉴(오른쪽) 영역 -->
<put-attribute name="bottom" value="/WEB-INF/jsp/egovframework/tmpl/bottom.jsp" /><!-- Copyright(하단) 영역 -->
<put-attribute name="body" value="/WEB-INF/jsp/egovframework/tmpl/body.jsp" />
</definition>
public class EgovMainMenuManageController implements ViewPreparer{
public void execute(TilesRequestContext tilesContext, AttributeContext attributeContext) throws PreparerException {
이메소드에서 left메뉴를 받아오는 방법좀 알려주세요..
}
}
selectMainMenuLeft를 받아오려면
@RequestParam("vStartP") String vStartP 값을 받아와야하는데 받아 올 수가 없네요ㅠㅠ..
그리고 left, top메뉴만 import가능하다고 하셨는데..
import시 계속 로딩되는 문제도 있구요.,,
죄송하지만 다시한번만 잘못된곳좀 알려주세요,
<definition name=".default" template="/WEB-INF/jsp/egovframework/tmpl/layout.jsp" preparer="egovframework.com.sym.mms.web.EgovMainMenuManageController">
<put-attribute name="title" value="서비스모드" /><!-- 페이지 Title -->
<put-attribute name="top" value="/WEB-INF/jsp/egovframework/tmpl/top.jsp" /><!-- 메인메뉴(상단) 영역 -->
<put-attribute name="left" value="/WEB-INF/jsp/egovframework/tmpl/left.jsp" /><!-- 메뉴(왼쪽) 영역 -->
<put-attribute name="right" value="/WEB-INF/jsp/egovframework/tmpl/right.jsp" /><!-- 퀵메뉴(오른쪽) 영역 -->
<put-attribute name="bottom" value="/WEB-INF/jsp/egovframework/tmpl/bottom.jsp" /><!-- Copyright(하단) 영역 -->
<put-attribute name="body" value="/WEB-INF/jsp/egovframework/tmpl/body.jsp" />
</definition>
public class EgovMainMenuManageController implements ViewPreparer{
public void execute(TilesRequestContext tilesContext, AttributeContext attributeContext) throws PreparerException {
이메소드에서 left메뉴를 받아오는 방법좀 알려주세요..
}
}
A
안녕하세요.. 최진용님..
우선 이전에 작업하신 방식으로 layout jsp에서 <c:import../>를 사용하시는 방법은 테스트 결과 적용에 문제가 없는 것 같습니다.
(파라미터도 보존됨)
추가로 이전 답변드린 ViewPreparer는 Tiles에서 메뉴처리와 같은 방식(원하시는 방식)을 위해 제공하는 기능으로 활용을 고려해 보시라는 의미에서 답변드린 내용입니다.
또 letf, top메뉴만 import할 수 있다는 것은...
layout jsp에서 <c:import../>를 사용하시는 것이 아니라..
left.jsp 또는 top.jsp 등에서 <c:import../>를 사용하시는 방법도 있다라는 의미로 설명드렸습니다.
또 ViewPreparer를 사용하실 때에 execute() 메소드에서 비지니스로직(메뉴정보를 가져오는 것)은 Service를 기존 Controller와 같은 방식으로 @Resource 또는 @Autowired로 injection하셔서 활용하시면 됩니다.
마지막으로 layout jsp에서 .. <c:import../>를 하셨을 경우.. 계속 로딩된다고 하셨는데..
아마 <c:import../>된 do에서도.. 동일한 layout이 적용된 tiles definition이 호출되어 재귀적으로 layout.jsp를 호출된 것 같습니다.
이 경우.. 즉 메뉴나 상위정보 등의 view는 위 layout을 지정한 defintion이 아닌 별도의 definition를 정의하셔서 호출하시면 됩니다.
예를 들면.. top의 경우 다음과 같은 definition을 정으하셔서 해당 jsp를 바로 지정하시면 됩니다.
<definition name="top" template="/WEB-INF/jsp/layouts/top.jsp">
</definition>
(기존 /sym/mms/EgovMainMenuHead.do Controller에서 리턴되는 view명이 top이 되도록 지정)
그럼.. 즐거운 하루되십시오.
감사합니다.
우선 이전에 작업하신 방식으로 layout jsp에서 <c:import../>를 사용하시는 방법은 테스트 결과 적용에 문제가 없는 것 같습니다.
(파라미터도 보존됨)
추가로 이전 답변드린 ViewPreparer는 Tiles에서 메뉴처리와 같은 방식(원하시는 방식)을 위해 제공하는 기능으로 활용을 고려해 보시라는 의미에서 답변드린 내용입니다.
또 letf, top메뉴만 import할 수 있다는 것은...
layout jsp에서 <c:import../>를 사용하시는 것이 아니라..
left.jsp 또는 top.jsp 등에서 <c:import../>를 사용하시는 방법도 있다라는 의미로 설명드렸습니다.
또 ViewPreparer를 사용하실 때에 execute() 메소드에서 비지니스로직(메뉴정보를 가져오는 것)은 Service를 기존 Controller와 같은 방식으로 @Resource 또는 @Autowired로 injection하셔서 활용하시면 됩니다.
마지막으로 layout jsp에서 .. <c:import../>를 하셨을 경우.. 계속 로딩된다고 하셨는데..
아마 <c:import../>된 do에서도.. 동일한 layout이 적용된 tiles definition이 호출되어 재귀적으로 layout.jsp를 호출된 것 같습니다.
이 경우.. 즉 메뉴나 상위정보 등의 view는 위 layout을 지정한 defintion이 아닌 별도의 definition를 정의하셔서 호출하시면 됩니다.
예를 들면.. top의 경우 다음과 같은 definition을 정으하셔서 해당 jsp를 바로 지정하시면 됩니다.
<definition name="top" template="/WEB-INF/jsp/layouts/top.jsp">
</definition>
(기존 /sym/mms/EgovMainMenuHead.do Controller에서 리턴되는 view명이 top이 되도록 지정)
그럼.. 즐거운 하루되십시오.
감사합니다.