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文件

運行結果:

默認主題:

男孩主題:

女孩主題:

 

    新手筆記,大神路過請見諒。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM