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