본문 바로가기
dev/Spring-boot

[SpringBoot] Tiles 설정 사용

by dev_Step 2022. 6. 29.

Tiles란 ?

 >> 내가 사용하고 느낀 바로는 기본틀을 정해놓고 필요한 부분의 타일을 갈아 끼면서 사용할수 있도록 하는 틀이라고 생각이 들었다.

 >> 또한 Spring에서 <include> 할때 사용한 jspf 설정과 비슷하다 라고 생각이되었다.

 

>> Tiles 를 사용하기 위해서는 Dependency를 추가해줘야 한다.

 

>> Tiles Config를 등록해준다.

>> config 파일을 등록할 폴더를 생성한 후에 TilesConfig.java 파일을 생성한 후

>> @Configuration 어노테이션과 @Bean 어노테이션을 통해서 viewResolver, tilesConfigurer을 Bean등록 해주었다.

 

 >> 위에서 지정한 tiles.xml 파일을 생성하고

 >> 생성할 Tiles 틀을 지정한다.

 >> 이때 <definition> 태그에서 template는 tiles를 사용할 기본 틀을 정의해주는 것이고 이때 사용하는 속성으로

 >> <put-attribute> 가 있다. 이는 insert 할때 사용할 name 과 해당 자리에 넣어줄 JSP 파일을 지정해준다

 >> value="" 으로 되어있는 부분은 해당 부분은 "동적"으로 변경될수 있음을 말한다

 >> 하단에 <definition> 태그의 extends 옵션을 보면 template를 지정한 definition의 name과 동일한데 이게 바로 "동적"으로 표현할 body 부분의 value 값을 지정할 태그를 의미한다.

 >> template에 지정한 default.jsp가 기본틀이 되며, 해당 default.jsp에서 header, footer, body 를 사용할 수 있다.

 >> 위에서 말했다싶이 default.jsp 틀을 사용하려면 defaultTemplate를 extends 하여 <definition> 하면된다.

>> 아래 보다시피  extends="defaultTemplate" 속성을 사용한 <definition> 태그의 경우는 

>> name = " * "     

>> name =  /shop/ * 

>> name = /shop/ * / *

>>  의 형식으로 Contoller 에서 return " " 할떄의 값과 맵핑하여

--   return "hello"

--   return "/shop/flower"

--   return "/shop/best/bestShop"

>> tiles.xml에서 지정한 형식과 맵핑되어 해당 페이지를 body에 넣어준다. 이때 * 표시되어있는것은 {1} {2} 등으로 표현 가능하고, return 과 name 형식을 꼭 맞춰줘야 해당 default.jsp 형식을 사용할 수 있따.