13.7. Using themes
13.7.1. Introduction
테마를 적용하기 위해서는 전역적으로 사용할 스타일 시트(CSS)와 그림 파일등의 자원을 정의하는 것이 필요합니다.
13.7.2. Defining themes
ThemeSource 를 사용하면 되는데 XmlWebApplicationContext 가 ThemeSource 를 구현하고 있으며 내부 구현체로는 ResourceBundleThemeSource 를 기본으로 사용하고 있습니다.
ResourceBundleThemeSource는 classpath에 들어있는 프로퍼티 파일을 읽어 들여서 theme을 설정할 때 사용합니다.
styleSheet=/themes/cool/style.css
background=/themes/cool/img/coolBg.jpg
background=/themes/cool/img/coolBg.jpg
위와 같이 프로퍼티 파일에 설정해 두고 view에서는 spring:theme 태그를 사용하여 key에 해당하는 이름으로 각 요소들을 사용할 수 있습니다.
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<head>
<link rel="stylesheet" href="<spring:theme code="styleSheet"/>" type="text/css"/>
</head>
<body background="<spring:theme code="background"/>">
...
</body>
</html>
<html>
<head>
<link rel="stylesheet" href="<spring:theme code="styleSheet"/>" type="text/css"/>
</head>
<body background="<spring:theme code="background"/>">
...
</body>
</html>
13.7.3. Theme resolvers
마지막으로 저렇게 만들어둔 여러개의 Theme 중에 어떤 Theme를 사용할지 선택해야 합니다. 이때 ThemeResolver를 사용하면 됩니다.
Class |
Description |
FixedThemeResolver |
defaultThemeName |
SessionThemeResolver |
각 세션에 테마에 대한 정보를 유지합니다. 세션 간에 공유되지는 |
CookieThemeResolver |
선택된 테마에 대한 정보를 쿠키에 유지 합니다. |