이제 타일즈를 사용할 수 있도록 View Resolver를 수정해보자.
현재 설정은 아래와 같이 되어 있다.
[경로: src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml]
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1" p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/> |
모든 URL 패턴은 위 설정에 따라 이동한다.
하지만 타일즈를 적용할라면 다른 View Resolver를 사용해야 한다.
위의 코드를 주석 처리한 후 아래와 같이 타일즈를 사용 할 수 있도록 변경하자.
tiles3를 사용한다고 표시 되어 있다.
그리고 설정은 아래 tiles.xml에 되어 있다고 입력 해주자.
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1" p:viewClass="org.springframework.web.servlet.view.tiles3.TilesView" /> <!--Don't add suffix or prefix like you do with .jsp files-->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer" > <property name="definitions"> <value>/WEB-INF/tiles/tiles.xml</value> </property> </bean> |
tiles.xml 파일은 아래와 같이 되어 있다.
[경로 : C:\egov\workspace\PP\src\main\webapp\WEB-INF\tiles\tiles.xml]
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd"> <tiles-definitions> <definition name="mainTemplate" template="/WEB-INF/jsp/tiles/layout.jsp"> <put-attribute name="header" value="/WEB-INF/jsp/tiles/header.jsp" /> <put-attribute name="content" value="/WEB-INF/jsp/tiles/content.jsp" /> <put-attribute name="footer" value="/WEB-INF/jsp/tiles/footer.jsp" /> </definition> <definition name="*/*" extends="mainTemplate"> <!-- <put-attribute name="content" value="/WEB-INF/jsp/{1}/{2}.jsp" /> --> </definition> <definition name="*/*/*" extends="mainTemplate"> <!-- <put-attribute name="content" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" /> --> </definition> </tiles-definitions> |
템플릿인 layout.jsp파일을 지정해준다.
그리고 layout파일안에 header, content, footer 파일을 주입시켜준다.
또한 URL 패턴이 /로 구분하여 2개, 3개일 경우(egov가 2개, 3개의 URL패턴을 가진다.) 패턴에 맞는/요청 URL에 맞는 jsp파일을 리턴하도록 할 수 있다.
또한 extends를 통해 레이아웃을 상속 받을 수 있다.
주석 처리된 것은 어떤 URL패턴이 요청하면 web/jsp에 구분자에 맞게 contents만 변경하여 페이지를 리턴한다.
이는 해더와 푸터에 중복되는 코드는 그대로 사용하고 컨텐츠만 변경하여 가지고 리턴할 수 있다.
여기서는 연습을 위해 주석처리를 해둬 어떤 요청이든 해당 템플릿에 있는 내용을 리턴하기로 해놓았다.
'egovframework' 카테고리의 다른 글
[egov] 타일즈(tiles) 적용 - 3 (0) | 2014.07.24 |
---|---|
[egov] 타일즈(tiles) 적용 - 1 (0) | 2014.07.24 |
[egov] 포탈 사이트 화면 분석 - 3 (0) | 2014.07.17 |
[egov] 포탈 사이트 화면 분석 - 2 (0) | 2014.07.17 |
[egov] 포탈 사이트 화면 분석 - 1 (0) | 2014.07.17 |