kjh95.tistory.com/314

     

    Spring MVC | 컨트롤러 만들기 예제 | 공지사항 | 글 상세보기

    kjh95.tistory.com/313 Spring MVC | ViewResolver 사용 | HTML 파일 설정 / 정적 파일 서비스 kjh95.tistory.com/312 Spring MVC | Spring Dispatcher를 Front Controller로 설정하기 | Dispatcher-servlet.xml..

    kjh95.tistory.com


    VIew 페이지 집중화의 필요성

    헤더의 내용을 수정하면 모든 부분에 바꿔줘야 한다.

    페이지에 있는 공동 분모를 집중화해야 한다.


    기존 페이지 모듈 집중화의 문제점

    include 사용 시여러 페이지를 만들게 되면 include 사용하기 때문에 

    페이지를 만들때 마다 include를 넣어야 하는 불편함이 있다.

     

     


    페이지 모듈 분리하기

    detail.jsp 와 list.jsp에는 main 내용만 들어가게 된다. -> 다 머지 모듈화

     


    Tiles 지시서 작성하기

    MVC Model2 와 Tiles

    Tiles가 백엔드에서 프런트로 옮겨가고 있다. -> 점점 소규모 프로젝트에서는 백엔드에서 페이지를 합치지 않는다.

     

    백엔드에서 페이지 합치는 작업하기 위해 필요하다.

    문서 복사하기

    tiles.apache.org/framework/tutorial/basic/pages.html

     

    Apache Tiles - Framework - Creating Tiles Pages

    Creating and using Tiles pages After installing and learning some of Tiles concepts, it is time to create some pages. Here you will find the steps to create reusable Tiles pieces and complete pages. Create a template Let's take the classic layout page stru

    tiles.apache.org

    tiles.xml 만들기

    tiles.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tiles-definitions PUBLIC
           "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
           "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
    <tiles-definitions>
      <definition name="notice.list" template="/WEB-INF/view/customer/inc/layout.jsp">
        <put-attribute name="title" value="공지사항" />
        <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
        <put-attribute name="visual" value="/WEB-INF/view/customer/inc/visual.jsp" />
        <put-attribute name="aside" value="/WEB-INF/view/customer/inc/aside.jsp" />
        <put-attribute name="body" value="/WEB-INF/view/customer/notice/list.jsp" />
        <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
      </definition>
      <definition name="notice.detail" template="/WEB-INF/view/customer/inc/layout.jsp">
        <put-attribute name="title" value="Tiles tutorial homepage" />
        <put-attribute name="header" value="/WEB-INF/view/inc/header.jsp" />
        <put-attribute name="visual" value="/WEB-INF/view/customer/inc/visual.jsp" />
        <put-attribute name="aside" value="/WEB-INF/view/customer/inc/aside.jsp" />
        <put-attribute name="body" value="/WEB-INF/view/customer/notice/detail.jsp" />
        <put-attribute name="footer" value="/WEB-INF/view/inc/footer.jsp" />
      </definition>
    </tiles-definitions>

     

    레이아웃을 페이지에 포함시켜야 한다.

    tiles 라이브러리 pom.xml maven 설정

     

    tag libaray 사용 layout.jsp 해당 부분에 입력

     

     


    Tiles ViewResolver 설정하기

    notice.list와 지시서를 가지고 페이지를 이어주는 작업을 하는 ViewResolver 만들어주기

    dispatcher-servlet.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            https://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <bean name="/index" class="com.newlecture.web.controller.IndexController" />  
    	 <bean name="/notice/list" class="com.newlecture.web.controller.notice.ListController" /> 
    	  <bean name="/notice/detail" class="com.newlecture.web.controller.notice.DetailController" />   
    
    	<bean
    		class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    		<property name="viewClass"
    			value="org.springframework.web.servlet.view.tiles3.TilesView" />
    		<property name="order" value="1" />
    	</bean>
    
    	<bean
    		class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    		<property name="definitions" value="/WEB-INF/tiles.xml" />
    	</bean>
    	
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/WEB-INF/view/"></property>
    		<property name="suffix" value=".jsp"></property>
    		<property name="order" value="2" />
    	</bean>
    	
    	<mvc:resources location="/static/" mapping="/**"></mvc:resources>
    	
    </beans>

     

    공지사항 실행해보기 

    정상적으로 레이아웃이 나타나고 있다.

     

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading