spring 主题使用详解[转]
在common_include_v2.jsp文件中,spring主题的使用:
<link href="${staticPath }/<spring:theme code='styleSheet'/>/jquery-ui/jquery-ui-1.9.0.css" rel="stylesheet" type="text/css" />
新框架中为了满足对不同用户使用不同主题而特意引入,此用法导致问题就是项目中无法对jsp页面进行直接访问,既然出现了问题,那就得好好深入了解,然后再想其他办法解决。
框架中使用theme所涉及的相关配置文件:
在src\web.xml中配置:
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在springMVC-serlvet.xml中配置:
<bean id="themeResolver" class="org.springframework.web.servlet.theme.CookieThemeResolver" >
<property name="defaultThemeName" value="default" />
</bean> <bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
<property name="basenamePrefix" value="themes."></property>
</bean>
------------------------------------------------------------------------------------------------------------------------------------
今天主要介绍下关于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>
2.2 SessionThemeResolver
<bean id="themeResolver" class="org.springframework.web.servlet.theme.SessionThemeResolver">
<property name="defaultThemeName" value="summer"/>
</bean>
设置主题名称为每个用户在HttpSession内保存
<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://www.iteye.com/topic/604484
参考资料:
http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch16s07.html
spring 主题使用详解[转]的更多相关文章
- (转)Spring JdbcTemplate 方法详解
Spring JdbcTemplate方法详解 文章来源:http://blog.csdn.net/dyllove98/article/details/7772463 JdbcTemplate主要提供 ...
- Spring jar包详解
Spring jar包详解 org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现 org.springframework.asm——spri ...
- Spring——jar包详解(转)
Spring——jar包详解 org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现 org.springframework.asm——spr ...
- Spring Boot异常处理详解
在Spring MVC异常处理详解中,介绍了Spring MVC的异常处理体系,本文将讲解在此基础上Spring Boot为我们做了哪些工作.下图列出了Spring Boot中跟MVC异常处理相关的类 ...
- spring事务配置详解
一.前言 好几天没有在对spring进行学习了,由于这几天在赶项目,没有什么时间闲下来继续学习,导致spring核心架构详解没有继续下去,在接下来的时间里面,会继续对spring的核心架构在继续进行学 ...
- spring注入参数详解
spring注入参数详解 在Spring配置文件中, 用户不但可以将String, int等字面值注入到Bean中, 还可以将集合, Map等类型的数据注入到Bean中, 此外还可以注入配置文件中定义 ...
- Spring的lazy-init详解
1.Spring中lazy-init详解ApplicationContext实现的默认行为就是在启动服务器时将所有singleton bean提前进行实例化(也就是依赖注入).提前实例化意味着作为初始 ...
- Spring Security Filter详解
Spring Security Filter详解 汇总 Filter 作用 DelegatingFilterProxy Spring Security基于这个Filter建立拦截机制 Abstract ...
- Spring Boot 配置文件详解
Spring Boot配置文件详解 Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件.他们的作用都是修改Spring Boot自动配置的默认值.相对于prop ...
随机推荐
- hdu 5233 Gunner II
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5233 简单题,stl水之... #include<algorithm> #include& ...
- JVM学习总结二——垃圾回收算法
昨天总结了JVM内存分区相关的知识,这次我们将来了解下JVM的另一个核心知识点——垃圾回收算法.这一部分其实并不太难,如果对操作系统的内存处理算法有所了解,那么这部分算法其实只看名字就能明白,两者在原 ...
- minihttp http://www.acme.com/software/mini_httpd/
1.安装mini_httpd 1.1把下载的mini_httpd-1.19.tar.gz拷贝到根目录 1.2 解压tar -xvfzmini_httpd-1.19.tar.gz ,会在根目录产生一 ...
- epoll重要
EPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET).Level Triggered (LT). LT是缺省的工作方式,并且同时支持block和no-blocksocke ...
- Rstdio中更换R版本
1.打开Rstdio,选择Tool --> Global Options.
- scrapy 错误
1. 安装win32时候 Unable to find vcvarsall.bat 解决方法: 1.如果你没有安装vc,去微软下个 VS2008 的免费版就能解决此问题. 2.如果你安装的是VS201 ...
- java提供了native2ascii工具
可以使用这个工具,把中文编码称为ascii码 在命令行输入native2ascii 输入中文 得到数据
- 移植net-snmp到开发板(mini210)
1.安装交叉编译工具arm-linux-gcc 2.下载net-snmp源码安装包 3.解压安装包 4../configure --build=i686-linux --host=arm-linux ...
- 团队开发——Alpha版总结会议
本组目前存在的问题: 1.在选题的时候,题目选的比较有难度,造成后期工作量较大,实现有难度(未能正确估计项目的难度). 2.最初规划时,设计的功能较多,但是技术水平达不到,导致目前完成功能较少. 3. ...
- npm ERR!无法安装任何包的解决办法
npm ERR! Windows_NT 6.1.7601npm ERR! argv "E:\\node\\\\node.exe" "E:\\node\\node_modu ...