W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
要在你的應(yīng)用中使用主題,你必須實(shí)現(xiàn)一個(gè)org.springframework.ui.context.ThemeSource
接口。WebApplicationContext
接口繼承了ThemeSource
接口,但主要的工作它還是委托給接口具體的實(shí)現(xiàn)來完成。默認(rèn)的實(shí)現(xiàn)是org.springframework.ui.context.support.ResourceBundleThemeSource
,它會(huì)從classpath的根路徑下去加載配置文件。如果需要定制ThemeSource
的實(shí)現(xiàn),或要配置ResourceBundleThemeSource
的基本前綴名(base name prefix),你可以在應(yīng)用上下文(application context)下注冊(cè)一個(gè)名字為保留名themeSource
的bean,web應(yīng)用的上下文會(huì)自動(dòng)檢測(cè)名字為themeSource
的bean并使用它。
使用的是ResourceBundleThemeSource
時(shí),一個(gè)主題可以定義在一個(gè)簡(jiǎn)單的配置文件中。該配置文件會(huì)列出所有組成了該主題的資源。下面是個(gè)例子:
styleSheet=/themes/cool/style.css
background=/themes/cool/img/coolBg.jpg
屬性的鍵(key)是主題元素在視圖代碼中被引用的名字。對(duì)于JSP視圖來說,一般通過spring:theme
這個(gè)定制化的標(biāo)簽(tag)來做,它與spring:message
標(biāo)簽很相似。以下的JSP代碼即使用了上段代碼片段中定義的主題,用以定制整體的皮膚:
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<head>
<link rel="stylesheet" href="<spring:theme code=''styleSheet''/>" type="text/css"/>
</head>
<body style="background=<spring:theme code=''background''/>">
...
</body>
</html>
默認(rèn)情況下ResourceBundleThemeSource
使用的基本名前綴(base name prefix)是空值。也即是說,配置文件是從根classpath路徑下加載的。因此,你需要把主題的定義文件cool.properties
放在classpath的根路徑目錄下,比如,/WEB-INF/classes
。ResourceBundleThemeSource
采用了Java的標(biāo)準(zhǔn)資源bundle加載機(jī)制,完全支持國(guó)際化主題。比如,你可以創(chuàng)建一個(gè)/WEB-INF/classes/cool_nl.properties
配置文件,并在其中引用一副有荷蘭文的背景圖片。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: