`
JackAndroid
  • 浏览: 136246 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring 主题使用详解

阅读更多

  今天主要介绍下关于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>

 这样,打开具体页面时就会根据当前主题显示相应内容了。

分享到:
评论
5 楼 li_gou 2010-12-15  
ckn126 写道
对于主题这块 spring中资料确实是少之又少,并且我对spring主题的使用基本上没有使用过,今天在楼主的介绍下明白了一些,还有一些需要看书慢慢消化。

最近在用这方面的资料和demo都不多 谢谢 楼主了
4 楼 ckn126 2010-03-03  
对于主题这块 spring中资料确实是少之又少,并且我对spring主题的使用基本上没有使用过,今天在楼主的介绍下明白了一些,还有一些需要看书慢慢消化。
3 楼 jacki6 2010-03-02  
还没用过 在这里学习了
2 楼 songfantasy 2010-03-02  
学习,那里还有spring主题的资料啊?
1 楼 aixinnature 2010-03-01  
spring的主题确实很少用,因为文档少,楼主写的内容为上手提供了很好的指导

相关推荐

    spring配置activemq详解

    在"spring配置activemq详解"这个主题中,我们将探讨如何在Spring项目中配置和使用ActiveMQ。以下是对这个主题的详细说明: 1. **配置ActiveMQ**: - 首先,我们需要在项目中引入ActiveMQ的相关依赖,这通常通过在`...

    《精通Spring2.X企业应用开发详解》随书源码1-15章

    Spring容器高级主题 第6章 Spring AOP基础 第7章 基于@AspectJ和Schema的 第7章 AOP 第3篇 数据库访问 第8章 Spring对DAO的支持 第9章 Spring的事务管理 第10章 使用Spring JDBC访问数据库 ...

    Spring——jar详解

    12. **spring-webmvc.jar**:Spring MVC的实现,包括控制器、模型、视图和视图解析器,以及国际化、主题、标签等功能。 13. **spring-mock.jar**:主要用于测试,包含一组模拟对象,帮助开发者在不依赖实际环境的...

    Spring_MVC详解学习

    在Spring MVC中,核心组件之一是DispatcherServlet,它把用户请求分派给相应的处理器,并提供了可配置的处理程序映射、视图解析、本地语言和主题解析等功能。此外,Spring MVC还提供了一个默认的Controller接口,...

    百知教育Spring详解笔记.rar

    以下是对"百知教育Spring详解笔记"的详细解读。 1. **控制反转(IoC)**:Spring通过IoC容器管理对象的生命周期和依赖关系,使得开发者不再需要在代码中手动创建和管理对象,而是由容器负责。这样提高了代码的可...

    Java全栈课程之Spring详解

    《Spring详解——Java全栈开发的关键》 Spring框架是Java企业级应用开发的基石,它以其灵活、高效和模块化的特性赢得了广大开发者的一致好评。本篇将深入探讨Spring的核心概念,包括IoC(Inversion of Control)...

    ActiveMQ+Spring完整详解例子

    本文将全面讲解ActiveMQ的使用流程,并结合Spring框架进行实例解析,帮助开发者深入理解如何在实际项目中部署和使用ActiveMQ。 1. **ActiveMQ的基本概念** - **消息**: 在ActiveMQ中,消息是数据传输的基本单元,...

    spring kafka demo (详解 可以跑通)

    Spring Kafka 是一个集成Apache Kafka与Spring框架的库,它使得在Spring应用中使用Kafka变得更加简单。本示例将提供一个详细的Spring Kafka演示,确保你可以按照步骤运行并理解其工作原理。 Kafka是一个高吞吐量、...

    《精通Spring2.X企业应用开发详解》16-19章

    Spring容器高级主题 第6章 Spring AOP基础 第7章 基于@AspectJ和Schema的 第7章 AOP 第3篇 数据库访问 第8章 Spring对DAO的支持 第9章 Spring的事务管理 第10章 使用Spring JDBC访问数据库 ...

    Spring 整合 iBATIS 文档 详解 加 源代码

    《Spring 整合 iBATIS 全面指南》 在Java企业级开发中,Spring框架以其强大的功能和...《Spring整合iBATIS文档详解》和提供的源代码是学习这一主题的宝贵资源,建议读者仔细研读,亲手实践,以提升自己的开发技能。

    spring详解(中文版)

    从“spring详解(中文版)”压缩包中,你可以期待找到关于这些主题的详细解释、示例代码以及可能的实战教程。这将有助于你从理论到实践,全面掌握Spring框架的精髓。无论是初学者还是经验丰富的开发者,这个资源都将...

    精通spring2.x企业应用开发详解

    《精通Spring 2.x企业应用开发详解》是针对Spring框架2.x版本的一本深度学习教程,旨在帮助读者全面掌握Spring在企业级应用开发中的实践技巧和核心概念。这本书的源代码部分包括了"part5",暗示着它可能涵盖了整个...

    主题:详解spring事务属性.doc

    1. `ISOLATION_DEFAULT`:使用数据库默认的隔离级别。 2. `ISOLATION_READ_UNCOMMITTED`:这是最低的隔离级别,允许脏读,即一个事务可以读到另一个未提交事务的数据,可能导致数据不一致。 3. `ISOLATION_READ_...

    开源框架spring详解-----AOP的深刻理解

    至于文件名称列表中的“Hibernate缓存深入详解”,虽然与标题主题不同,但与Spring框架密切相关,因为Spring经常被用来整合Hibernate进行数据持久化。Hibernate的缓存机制主要包括一级缓存(Session Cache)和二级...

    spring邮件抽象层详解

    `SimpleMailMessage`类是用来封装邮件的基本属性,如发件人(from)、收件人(to)、抄送人(cc)、主题(subject)和正文(text)。 ### 22.2. Spring邮件抽象结构 - **MailSender**:这个接口提供两个方法:`send...

    Kafka3.0详解,客户端命令,核心配置文件详解。spring集成、webflux集成、集群搭建

    在Java开发中,可以使用spring-kafka进行Kafka的集成,这为开发者提供了基于Spring的便捷方式来操作Kafka。spring-kafka中提供了多种消息监听器容器和消息生产者,支持同步和异步消息的生产和消费。此外,还可以使用...

    Struts 2+Hibernate+Spring整合开发技术详解随书源码

    在"Struts 2+Hibernate+Spring整合开发技术详解"这本书中,作者蒲子明深入浅出地讲解了这三大框架的整合使用。随书源码包含第19至21章的内容,主要涉及的是实际项目中的两个应用场景:BBS论坛系统和Photo System照片...

    《精通Spring2.X企业应用开发详解》

    ### 《精通Spring2.X企业应用开发详解》第五章知识点详解 #### 5.1 Spring容器技术内幕 ##### 5.1.1 内部工作机制 Spring容器作为一款设计精妙且功能强大的框架核心,其内部机制对于理解和掌握Spring的工作原理至...

    《精通Spring2.X企业应用开发详解》20-23

    Spring容器高级主题 第6章 Spring AOP基础 第7章 基于@AspectJ和Schema的 第7章 AOP 第3篇 数据库访问 第8章 Spring对DAO的支持 第9章 Spring的事务管理 第10章 使用Spring JDBC访问数据库 ...

Global site tag (gtag.js) - Google Analytics