본문 바로가기

학원 일기/학원-Spring

타일즈뷰 만들기

1.

<!-- 타일즈 뷰 템플릿 -->
<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-jsp</artifactId>
    <version>3.0.8</version>
</dependency>

<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-servlet</artifactId>
    <version>3.0.8</version>
</dependency>
      
<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-extras</artifactId>
    <version>3.0.8</version>
</dependency>      

 

pom.xml에 라이브러리 추가

 

servelt-context에 

 

<!-- 타일즈 설정파일 위치 -->
<beans:bean class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<beans:property name="definitions">
<beans:list>
<beans:value>/WEB-INF/tiles/tiles.xml</beans:value>
</beans:list>
</beans:property>
</beans:bean > 

 

타일즈 xml위치지정

 

<!-- 첫번째로 동작할 타일즈뷰 템플릿선언 -->
<beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
<beans:property name="order" value="1"/>
</beans:bean>

 

기존 뷰리졸버보다 먼저 동작하게지정

 

3)

   <definition name="templateBasic" template="/WEB-INF/tiles/templateBasic.jsp">
            <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
   </definition> 

 

definiton태그의 name에는 변수명(해당 변수의맵핑경로를 참조할때쓰인다) template에는 값을 요청할경로를쓴다

(그래서 home으로 요청할경우 tiles설정 상속값을넣지않으면 url은그대로지만 templateBaisc(name값)에 경로를찾을수없다고 나오는것이다)

put태그이  name에도 변수명( 템플릿을 적용할 jsp페이지에서 값을 불러올때 쓰인다) value에는 실제 페이지

코드를 가지고있는 경로

 

<definition name="*" extends="templateBasic">
<put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />
</definition>

 

--> name에는 경로가 extends의 값에는 상속받을 템플릿이 들어온다 put에는 상속받을 변수와 value에는 변수에대한값이 들어온다

 

해석하면 (*)첫경로에 들어온 모든요청에 template(여기서는 기본으로header적용되는) 를 상속시켜줄것이다

그리고 그상속받을 변수는body이고 body에대한 요청값은 WEB-INF/views/{*}(=WEB-INF/views/{1}  ) 가될것이다

 

즉 처음들어온 경로에 templateBaisc맵핑을 한후 *에대한 맵핑을 컨트롤러로보내 뷰리졸버로 합친후 그값을 body에저장하는것이다

그리고 그body templateDefault와같은 페이지에 

 

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> 디렉티브설정후

 

<tiles:insertAttribute name="body" /> 태그를통해 가져온다

 

가져와지는 태그는 body안의 들어갈태그로 css는 절대경로를 응용하여 참조한다 아래의 페이지를 예시로 마무리!

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

   <link href="${pageContext.request.contextPath }/resources/css/bootstrap.css" rel="stylesheet">
    <script src="${pageContext.request.contextPath }/resources/js/jquery.js"></script>
    <!--개인 디자인 추가-->
    <link href="${pageContext.request.contextPath }/resources/css/style.css" rel="stylesheet">
    <script src="${pageContext.request.contextPath }/resources/js/bootstrap.js"></script>



</head>
<body>

<!-- 첫번째 타일즈 템플릿 조립. -->
<!-- name속성에는 실제파일명과 함께 tils.xml에서 사용할 이름이 지정됩니다. -->
<tiles:insertAttribute name="header" />

<tiles:insertAttribute name="body" />

</body>
</html>

 

 

 

'학원 일기 > 학원-Spring' 카테고리의 다른 글

스프링0707  (0) 2021.07.07
스프링0706  (0) 2021.07.07
스프링 20210705  (0) 2021.07.05
스프링0630  (0) 2021.07.01
06-29 스프링  (0) 2021.06.29