리주의 프로그래밍 공부

Wildcard 본문

스프링(Spring) 공부

Wildcard

Leezu_ 2021. 1. 4. 09:38

백엔드에서 일괄적으로 페이지를 관리하도록 템플릿 프레임워크인 Tiles를 사용할 수 있다.

 

<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="footer" value="/WEB-INF/view/inc/footer.jsp" />
    <put-attribute name="body" value="/WEB-INF/view/customer/notice/list.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="footer" value="/WEB-INF/view/inc/footer.jsp" />
    <put-attribute name="body" value="/WEB-INF/view/customer/notice/detail.jsp" />
  </definition>
</tiles-definitions>

 

다만 위처럼 사용한다면 페이지를 추가할때마다 계속 여러줄을 써야하는 번거로움이 생기는데,

편리하게 사용하기 위해서 Wildcard 라는 기능을 사용할 수 있다.

 

Wildcard를 사용한 <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>
 // list와 detail 등이 들어왔을때
  <definition name="notice.*" 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="footer" value="/WEB-INF/view/inc/footer.jsp" />
    							// *에 매칭되는 첫 문자 매핑
    <put-attribute name="body" value="/WEB-INF/view/customer/notice/{1}.jsp" />
  </definition>
</tiles-definitions>

기존 코드에서 list와 detail 대신 패턴문자인 *를 넣고, body부분에서 패턴문자에 매칭되는 문자를 매핑할 수 있도록 {1}을 넣었다.

패턴문자는 여러개 사용가능하며, 여러개일 경우에는 {1}, {2} 식으로 매핑해서 사용해주면 된다.

 

참고문헌

tiles.apache.org/framework/tutorial/advanced/wildcard.html

'스프링(Spring) 공부' 카테고리의 다른 글

DI를 Annotation으로 변경  (0) 2021.01.06
설정파일 분리하기  (0) 2021.01.05
연결정보 분리  (0) 2021.01.05
정적파일 서비스  (0) 2020.12.31
ViewResolver  (0) 2020.12.31