note

Spring Tiles 레이아웃 본문

JSP/Spring

Spring Tiles 레이아웃

투한 2012. 3. 7. 11:47

















추가하기









Menu3Controller  -> menu3 호출
menu에 링크
tilesdef.xml -> body 매핑
body-menu3.jsp 생성
dispatcher-servlet.xml 에

<bean class="kr.spring.tiles.controller.Menu3Controller"/>
추가









dispatcher-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<bean class="kr.spring.tiles.controller.IndexController"/>
	<bean class="kr.spring.tiles.controller.Menu1Controller"/>
	<bean class="kr.spring.tiles.controller.Menu2Controller"/>
	<bean class="kr.spring.tiles.controller.Menu3Controller"/>

	<bean id="tilesConfigurer"
		class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
		<property name="definitions">
			<list>
				<value>/WEB-INF/tiles2def/tilesdef.xml</value>
			</list>
		</property>
		<property name="preparerFactoryClass"
			value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory" />
	</bean>

	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.UrlBasedViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.tiles2.TilesView" />
	</bean>

</beans>




tilesdef.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="index" template="/WEB-INF/viewtiles2/template/layout.jsp">
        <put-attribute name="title"  value="Spring Tiles Example"/>
        <put-attribute name="menu"   value="/WEB-INF/viewtiles2/template/menu.jsp"/>
        <put-attribute name="header" value="/WEB-INF/viewtiles2/template/header.jsp"/>
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body.jsp"/>
        <put-attribute name="footer" value="/WEB-INF/viewtiles2/template/footer.jsp"/>
    </definition>
    
    <definition name="menu1" extends="index">
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body-menu1.jsp"/>
    </definition>
	
	<definition name="menu2" extends="index">
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body-menu2.jsp"/>
    </definition>
    
	<definition name="menu3" extends="index">
        <put-attribute name="body"   value="/WEB-INF/viewtiles2/body-menu3.jsp"/>
    </definition>
</tiles-definitions>






Menu3Controller
package kr.spring.tiles.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Menu3Controller {
	@RequestMapping("/menu3.do")
	public String process() {
			return "menu3";
		}

}







viewtiles2/template/menu.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<ul>
	
    <li><a href="index.do">main</a></li>
    <li><a href="menu1.do">menu1</a></li>
    <li><a href="menu2.do">menu2</a></li>
    <li><a href="menu3.do">menu3</a></li>
</ul>







body-menu3.jsp
<%@page contentType="text/html; charset=euc-kr"%>
<br />
<br />
menu 3 body location