在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 主题使用详解[转]的更多相关文章

  1. (转)Spring JdbcTemplate 方法详解

    Spring JdbcTemplate方法详解 文章来源:http://blog.csdn.net/dyllove98/article/details/7772463 JdbcTemplate主要提供 ...

  2. Spring jar包详解

    Spring jar包详解 org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现 org.springframework.asm——spri ...

  3. Spring——jar包详解(转)

    Spring——jar包详解 org.springframework.aop ——Spring的面向切面编程,提供AOP(面向切面编程)的实现 org.springframework.asm——spr ...

  4. Spring Boot异常处理详解

    在Spring MVC异常处理详解中,介绍了Spring MVC的异常处理体系,本文将讲解在此基础上Spring Boot为我们做了哪些工作.下图列出了Spring Boot中跟MVC异常处理相关的类 ...

  5. spring事务配置详解

    一.前言 好几天没有在对spring进行学习了,由于这几天在赶项目,没有什么时间闲下来继续学习,导致spring核心架构详解没有继续下去,在接下来的时间里面,会继续对spring的核心架构在继续进行学 ...

  6. spring注入参数详解

    spring注入参数详解 在Spring配置文件中, 用户不但可以将String, int等字面值注入到Bean中, 还可以将集合, Map等类型的数据注入到Bean中, 此外还可以注入配置文件中定义 ...

  7. Spring的lazy-init详解

    1.Spring中lazy-init详解ApplicationContext实现的默认行为就是在启动服务器时将所有singleton bean提前进行实例化(也就是依赖注入).提前实例化意味着作为初始 ...

  8. Spring Security Filter详解

    Spring Security Filter详解 汇总 Filter 作用 DelegatingFilterProxy Spring Security基于这个Filter建立拦截机制 Abstract ...

  9. Spring Boot 配置文件详解

    Spring Boot配置文件详解 Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件.他们的作用都是修改Spring Boot自动配置的默认值.相对于prop ...

随机推荐

  1. c++大数模板

    自己写的大数模板,参考了小白书上的写法,只是实现了加减乘法,不支持负数,浮点数.. 除法还没写o(╯□╰)o以后再慢慢更吧.. 其实除法我用(xie)的(bu)少(lai),乘法写过fft,这模板还是 ...

  2. Linux: uid/euid/suid的关系

    三种进程用户的简单解释:三种用户/组ID:uid/gid: 实际用户/组IDeuid/egid: 有效用户/组ID, 进程执行某个应用的用户/组ID.suid/sgid: 设置用户/组ID, 应用所属 ...

  3. 数据密集型 和 cpu密集型 event loop

    Node.js在官网上是这样定义的:“一个搭建在Chrome JavaScript运行时上的平台,用于构建高速.可伸缩的网络程序.Node.js采用的事件驱动.非阻塞I/O模型使它既轻量又高效,是构建 ...

  4. 在windows上使用symfony创建简易的CMS系统(一)

    http://blog.csdn.net/kunshan_shenbin/article/details/7164675 参考自:http://xsymfony.801.cxne.net/forum. ...

  5. 戏说PHP的嵌套函数

    PHP很早就支持嵌套函数了.并是不PHP5.3有闭包时才有的.然而,它却不是象JS,AS那样的闭包嵌套.即它的嵌套函数根本无闭包模式的逃脱. PHP嵌套函数有一些特别之处.最特别的是,当外部函数被调用 ...

  6. 用Sqlplus手动创建Oracle11g数据库

    用Sqlplus手动创建Oracle数据库 刚开始学习Oracle数据库,菜鸟一个,使用sqlplus创建数据库遇到了很多问题,通过不断地百度,终于创建成功了.所以顺便把整个过程中犯的一些最低级的错误 ...

  7. Java Day 16

    基本数据类型包装类 Integer.MAX_VALUE  Integer.parseInt(); intValue(); valueOf(); 自动装拆箱 如果是一个字节范围,数据共享 字符串中 数值 ...

  8. 【收藏】Linux添加/删除用户和用户组

    1.建用户: adduser phpq                             //新建phpq用户 passwd phpq                               ...

  9. TF-IDF与余弦相似性的应用(三):自动摘要

    有时候,很简单的数学方法,就可以完成很复杂的任务. 这个系列的前两部分就是很好的例子.仅仅依靠统计词频,就能找出关键词和相似文章.虽然它们算不上效果最好的方法,但肯定是最简便易行的方法. 今天,依然继 ...

  10. springmvc返回jsp源代码解决办法

    url-pattern问题 spring用到forward("/WEB-INF/jsp/*.jsp")而forward当然是又要经过web.xml的映射的,然后,在URL匹配时,  ...