appfuse theme的实现原理

appfuse当中提供了多套css可以实现动态切换,达到改变外观风格的目的。
每个主题theme都放在web/styles/目录下面,每个主题一个文件夹。文件夹的名字就是主题的名字。在web.xml中配置缺省值:
    <context-param>
        <param-name>csstheme</param-name>
        <param-value>simplicity</param-value>
    </context-param>
在startupListener中获取参数放入到appConfig的HashMap当中去:
        if (context.getInitParameter(Constants.CSS_THEME) != null) {
            config.put(Constants.CSS_THEME, context.getInitParameter(Constants.CSS_THEME));
        }

最后在web/decorator/default.jsp当中进行使用:
<link rel="stylesheet" type="text/css" media="all" href="<c:url value='/styles/${appConfig["csstheme"]}/theme.css'/>" />

你可能感兴趣的:(jsp,Web,xml,css,Appfuse)