在渲染視圖的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文件
運行結果:
默認主題:

男孩主題:

女孩主題:

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