需求
有一文件管理系统,需要同时支持两个单位的使用。功能都一样只是界面不同。(其实还是稍有不同,但是和本文无关所以可以忽略)
实现思路
1. 开发多套css样式文件(css样式需要相对统一)。
2. 添加一个配置文件,部署人员只需要修改这个配置自动切换样式文件。
实现方法:
1. 每个页面文件都引用一个taglib文件(原来的页面框架都是这么做的)
2. 在taglib中把css目录的作为一个变量
cssDir起来
2.1taglib 中会根据系统系统id选择不通的样式目录
3. 页面中所有引用样式文件的的地址都使用
cssDir变量
代码:
1 taglib
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
<c:set var="ctx" value="${pageContext.request.contextPath}" scope="request"/>
<c:if test="${systemid==1}">
<c:set var="cssDir" value="http://${ip}/fgy_DM/cssGroup/blue" scope="request"/>
</c:if>
<c:if test="${systemid==2}">
<c:set var="cssDir" value="http://${ip}/fgy_DM/cssGroup/green" scope="request"/>
</c:if>
systemid 和 ip 都是应用初始化时存放的,具体方法请参考 《
Tomcat web应用启动时执行代码》
2 业务页面(部分代码)
<%@ include file="/taglibs.jsp"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>文档共享</title>
<link href="${cssDir}/css/content.css" rel="stylesheet" type="text/css" />
</head>