Spring MVC Theme(简单示例)

在渲染视图的spring-web中,配置them。

  实现两个接口就可以使用:

    ResourceBundleThemeSource  --> 用于确定要使用的主题的名字(theme name)
    SessionThemeResolver --> 用于加载主题文件(通过 theme name)

这里默认加载default.properties的资源

    <!--theme-->
    <bean id="themeSource" class="org.springframework.ui.context.support.ResourceBundleThemeSource">
        <!--加载资源-->
        <property name="basenamePrefix" value="theme."/>
    </bean>
    <!-- 【可选】 -->
    <!-- 默认情况下,使用的是 FixedThemeResolver 来确定主题名字,默认名字为 theme -->
    <!-- 可以根据实际情况配置为 SessionThemeResovler/CookieThemeResolver -->
    <bean id="themeResolver" class="org.springframework.web.servlet.theme.SessionThemeResolver">
        <!--默认主题文件的名字是 "xxxx",如果不设置,名为 theme-->
        <property name="defaultThemeName" value="default"/>
    </bean>

前端代码:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" href="<spring:theme code="main.body" />" >
</head>
<body>
    <div>
        一键切换主题:<br/>
        <a href="/th/default">默认</a>
        <a href="/th/boy">男孩</a>
        <a href="/th/girl">女孩</a>
    </div>
    <br/>
    <div>
        人生,是风景和艰辛的组合,<br/>

        欣赏路上风景的同时,<br/>

        难免会遇上一个臭水沟,<br/>

        但是不快总要度过,<br/>

        与其心心念念它如何影响了你的心情,<br/>

        不如快速跨过,<br/>

        欣赏其他风景,<br/>

        无论风景还是艰辛,<br/>

        我们都要向前走。<br/>
    </div>
</body>
</html>

后端代码:

package com.oukele.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ThemeResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller
public class ThemeController {

    //将theme注入容器中
    @Autowired
    private ThemeResolver themeResolver;

    /**
     * 返回一个页面
     * */
    @GetMapping(path = "/th")
    public  String getPage(){
        return "theme1";
    }

    /**
     *请求方式:GET
     * 参数:theme
     * 请求url:/th/对应主题的文件
    */
    @RequestMapping(path = "th/{theme}",method = RequestMethod.GET)
    public String theme1(@PathVariable("theme") String themeStr,HttpServletRequest request,HttpServletResponse response){
        themeResolver.setThemeName(request,response, themeStr);
        return "redirect:/th";
    }

}

theme文件夹里的结构(里面有三个主题)

引用对应的css文件

运行结果:

默认主题:

男孩主题:

女孩主题:

 

    新手笔记,大神路过请见谅。

 

posted @ 2018-11-01 19:38  追梦滴小蜗牛  阅读(1500)  评论(0编辑  收藏  举报