이제 타일즈를 사용할 수 있도록 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만 변경하여 페이지를 리턴한다.

이는 해더와 푸터에 중복되는 코드는 그대로 사용하고 컨텐츠만 변경하여 가지고 리턴할 수 있다.


여기서는 연습을 위해 주석처리를 해둬 어떤 요청이든 해당 템플릿에 있는 내용을 리턴하기로 해놓았다.


+ Recent posts