Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> spring 主題使用詳解

spring 主題使用詳解

編輯:Android開發實例

  今天主要介紹下關於spring下主題(Theme)的內容,之前去網上搜索下了相關內容,發現其使用介紹都很簡單,我這裡詳細介紹下如何使用spring的主題。

 

 1、ThemeSource

  ThemeSource,說簡單點,主要用於如何定位相應的主題資源文件。默認狀態下,其具體實現類ResourceBunldeThemeSource是在類路徑根目錄下查找相應的資源文件,不過可以通過配置器屬性basenamePrefix來制定。

 <bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
        <property name="basenamePrefix" value="com.jack.themes."></property>
     </bean>

 這樣,DispatcherServlet就會下com.jack.themes包下進行查找資源文件。

 

  2、ThemeResolver

  ThemeResolver的功能和ViewResolver、LocaleResolver類似,主要根據配置返回Theme。Spring默認提供三個ThemeResolver具體的類:

     (1).FixedThemeResolver

     (2).SessionThemeResolver

     (3).CookieThemeResolver

  三個類的區別直接可以通過其名字就可以看出,fix表示固定,Session即會話,而cookie就是利用cookie了。以下我一一列出使用例子

   2.1 FixedThemeResolver

    <bean id="themeResolver" class="org.springframework.web.servlet.theme.FixedThemeResolver">
       <property name="defaultThemeName" value="summer"/>
     </bean>

 設置主題文件為summer.properties,在整個項目內固定不變。

   2.2 SessionThemeResolver

  <bean id="themeResolver" class="org.springframework.web.servlet.theme.SessionThemeResolver">
        <property name="defaultThemeName" value="summer"/>
   </bean>

 設置主題名稱為每個用戶在HttpSession內保存。

  2.3 CookieThemeResolver

  <bean id="themeResolver" class="org.springframework.web.servlet.theme.CookieThemeResolver">
        <property name="defaultThemeName" value="summer"/>
   </bean>

 主題保存在Cookie中。

3、ThemeChangeInterceptor

   如果需要根據用戶請求來改變主題,則需要使用ThemeChangeInterceptor攔截器了。

 <bean id="themeChangeInterceptor" class="org.springframework.web.servlet.theme.ThemeChangeInterceptor">
          <property name="paramName" value="themeName"></property>
   </bean> 	                

 其中設置用戶請求參數名為themeName,即url為?themeName=具體的主題名稱。此外,還需要在handlerMapping中配置攔截器

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
   <property name="interceptors" >
      <list>
         <ref local="themeChangeInterceptor"/>
      </list>
   </property>
 </bean>      

 這樣,當ThemeResolver為CookieThemeResolver或者SessionThemeResolver時,可以通過url的參數設置來制定主題。

  http://....../?themeName=summer,則主題為summer.properties文件

  http://....../?themeName=winter,則主題為winter.properties文件。

4.主題文件

  主題文件為主題名.properties格式,具體其內容則是一些key-value對,表示一些css或者圖片、文字等。如

welcome.message=\u8FD9\u662F\u590F\u5929\uFF0C\u597D\u70ED\u554A\uFF01
hello.message=helloWorld!

 需要注意的是其中的中文需要進行轉碼。

5.視圖頁面

 通過spring的tags可以將主題內容進行顯示

<%@ taglib  prefix="spring" uri="http://www.springframework.org/tags" %>
 <spring:theme code="welcome.message"></spring:theme>

 這樣,打開具體頁面時就會根據當前主題顯示相應內容了。

轉自:http://jackandroid.javaeye.com/blog/604484

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved