Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 첫 React
- react
- 뷰 리액트
- 알고리즘
- 경력직
- 쟈스
- 오라클
- CompositionAPI
- 첫 리액트
- SBS 개발
- 리액트
- 사내시스템
- 트리
- e-HR
- 백준알고리즘
- 1차면접
- IT시스템개발
- 뷰
- 뷰 리액트 비교
- 자바
- 웹 개발 면접 질문
- 간단 프로젝트
- 대문자
- MySQL
- 면접
- Vue.js
- URL입력
- 프로젝트 후기
- 백준
- SBS 본사
Archives
- Today
- Total
리주의 프로그래밍 공부
Wildcard 본문
백엔드에서 일괄적으로 페이지를 관리하도록 템플릿 프레임워크인 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} 식으로 매핑해서 사용해주면 된다.
참고문헌
'스프링(Spring) 공부' 카테고리의 다른 글
DI를 Annotation으로 변경 (0) | 2021.01.06 |
---|---|
설정파일 분리하기 (0) | 2021.01.05 |
연결정보 분리 (0) | 2021.01.05 |
정적파일 서비스 (0) | 2020.12.31 |
ViewResolver (0) | 2020.12.31 |