編輯: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
在Activity中覆寫下面兩個方法:代碼如下: // 創建菜單 @Override public boo
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
前面兩部分分別講了RSS概述和解析XML文件,本節講解怎樣在列表中顯示RSS內
BroadcastReceiver 是系統全局廣播監聽類, 其主要方法是onReceive(),自定義的廣播類繼承於它並實現自己的onReceive()處理邏輯B