站长网 资讯 Spring Boot 发展历史说明

Spring Boot 发展历史说明

首先三个按钮分别对应了三个不同的样式,我们先把这三个不同的样式定义出来,分别如下: blue.css: body{ background-color:#05e1ff; } green.css: body{ background-color:#aaff9c; } red.css: body{ background-color:#ff0721; } 主题的定义,往往是

首先三个按钮分别对应了三个不同的样式,我们先把这三个不同的样式定义出来,分别如下:

blue.css:

body{ 

    background-color: #05e1ff; 

green.css:

body{ 

    background-color: #aaff9c; 

red.css:

body{ 

    background-color: #ff0721; 

主题的定义,往往是一组样式,因此我们一般都是在一个 properties 文件中将同一主题的样式配置在一起,这样方便后期加载。

所以接下来我们在 resources 目录下新建 theme 目录,然后在 theme 目录中创建三个文件,内容如下:

blue.properties:

index.body=/css/blue.css 

green.properties:

index.body=/css/green.css 

red.properties:

index.body=/css/red.css 

在不同的 properties 配置文件中引入不同的样式,但是样式定义的 key 都是 index.body,这样方便后期在页面中引入。

接下来在 SpringMVC 容器中配置三个 Bean,如下:

<mvc:interceptors> 

    <mvc:interceptor> 

        <mvc:mapping path="/**"/> 

        <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"> 

            <property name="paramName" value="theme"/> 

        </bean> 

    </mvc:interceptor> 

</mvc:interceptors> 

<bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource"> 

    <property name="basenamePrefix" value="theme."/> 

</bean> 

<bean id="themeResolver" class="org.springframework.web.servlet.theme.SessionThemeResolver"> 

    <property name="defaultThemeName" value="blue"/> 

</bean> 

首先配置拦截器 ThemeChangeInterceptor,这个拦截器用来解析主题参数,参数的 key 为 theme,例如请求地址是 /index?theme=blue,该拦截器就会自动设置系统主题为 blue。当然也可以不配置拦截器,如果不配置的话,就可以单独提供一个修改主题的接口,然后手动修改主题,类似下面这样:

@Autowired 

private ThemeResolver themeResolver; 

@RequestMapping(path = "/01/{theme}",method = RequestMethod.GET) 

public String theme1(@PathVariable("theme") String themeStr, HttpServletRequest request, HttpServletResponse response){ 

    themeResolver.setThemeName(request,response, themeStr); 

    return "redirect:/01"; 

themeStr 就是新的主题名称,将其配置给 themeResolver 即可。

接下来配置 ResourceBundleThemeSource,这个 Bean 主要是为了加载主题文件,需要配置一个 basenamePrefix 属性,如果我们的主题文件放在文件夹中,这个 basenamePrefix 的值就是 文件夹名称.。

接下来配置主题解析器,主题解析器有三种,分别是 CookieThemeResolver、FixedThemeResolver、SessionThemeResolver,这里我们使用的是 SessionThemeResolver,主题信息将被保存在 Session 中,只要 Session 不变,主题就一直有效。这三个主题解析器松哥会在下一小节中和大家仔细分析。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/biancheng/zx/2021/0527/6923.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部