spring 主题使用详解
? 今天主要介绍下关于spring下主题(Theme)的内容,之前去网上搜索下了相关内容,发现其使用介绍都很简单,我这里详细介绍下如何使用spring的主题。
?
?1、ThemeSource
? ThemeSource,说简单点,主要用于如何定位相应的主题资源文件。默认状态下,其具体实现类ResourceBunldeThemeSource是在类路径根目录下查找相应的资源文件,不过可以通过配置器属性basenamePrefix来制定。
<bean id="themeSource" 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" value="summer"/> </bean>
?设置主题文件为summer.properties,在整个项目内固定不变。
?? 2.2 SessionThemeResolver
<bean id="themeResolver" value="summer"/> </bean>
?设置主题名称为每个用户在HttpSession内保存。
? 2.3 CookieThemeResolver
<bean id="themeResolver" value="summer"/> </bean>
?主题保存在Cookie中。
3、ThemeChangeInterceptor
?? 如果需要根据用户请求来改变主题,则需要使用ThemeChangeInterceptor拦截器了。
<bean id="themeChangeInterceptor" value="themeName"></property> </bean>
?其中设置用户请求参数名为themeName,即url为?themeName=具体的主题名称。此外,还需要在handlerMapping中配置拦截器
<bean id="handlerMapping" > <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\uFF01hello.message=helloWorld!
?需要注意的是其中的中文需要进行转码。
5.视图页面
?通过spring的tags可以将主题内容进行显示
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <spring:theme code="welcome.message"></spring:theme>
?这样,打开具体页面时就会根据当前主题显示相应内容了。
1 楼 aixinnature 2010-03-01 spring的主题确实很少用,因为文档少,楼主写的内容为上手提供了很好的指导 2 楼 songfantasy 2010-03-02 学习,那里还有spring主题的资料啊? 3 楼 jacki6 2010-03-02 还没用过 在这里学习了 4 楼 ckn126 2010-03-03 对于主题这块 spring中资料确实是少之又少,并且我对spring主题的使用基本上没有使用过,今天在楼主的介绍下明白了一些,还有一些需要看书慢慢消化。 5 楼 li_gou 2010-12-15 ckn126 写道对于主题这块 spring中资料确实是少之又少,并且我对spring主题的使用基本上没有使用过,今天在楼主的介绍下明白了一些,还有一些需要看书慢慢消化。