浏览 6114 次
锁定老帖子 主题:Java WEB系统 换肤 实现方式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-05
1、系统管理员定制整个系统的外观,系统管理员来选择一个系统使用什么样的外观,同时不允许用户来定制。 2、每个用户都可以实现定制,并且保存自己的定制 当然上述两个情况都可以在一个系统中实现,不过需要由管理员来确定是否开放用户定制功能。 换肤的实现原理:动态改变需要的css文件。 实现方式: 一、CSS设置部分: 每种风格设置一个套样式表,分别放在不同的文件夹中,最好CSS样式表中用到的背景图片等也放在该文件夹下, 把文件夹地址作为系统环境变量。 通常,需要写一个网站通用的CSS文件,该文件一般只控制css的位置布局,不涉及颜色,背景布局,然后每套风格只涉及换肤方案的css文件,这里就只控制颜色,背景。 页面使用部分: 需要使用系统变量来读取样式表和图片文件 <link href="${skins}/styles.css" rel="stylesheet" type="text/css" /> <img src="${skins}/images/Top_ment_left.gif" width="134" height="33" /> 其中${skins}是系统变量,如果上面定制方案1,该变量保存在Application中,如果是方案2,该变量保存在Session中即可。 变量的设置和读取: 那么如何来设置保存${skins}的变量呢? 如果是允许用户定制,需要在每个用户表中增加一列,保存该用户设置的风格路径,那么就可以在用户登录的时候保存在Session中, 如果不允许用户定制,就需要在系统启动的时候就加载到Application中,可以考虑使用监听器来实现。并且在执行换肤功能的时候来重新设置Application中的这个变量。而变量的保存可以保存在配置文件中,也可以保存在数据库表中,如果保存在系统表中,注意监听器中需要数据库链接了,需要能够获取数据库链接才可以。 不清楚大家有没有其它的方案?有没有模板或者什么框架实现了换肤功能???? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-28
我们现在的OA 也是这么做的.
可是项目经理说是要 换CSS 换肤方案.. 不知道他是怎么想 |
|
返回顶楼 | |
发表时间:2008-11-29
你说的这两种方案我都用过
针对用户换肤的方案我是保存在数据库表中的 针对系统换肤的方案我是程序启动固定扫描皮肤目录(如:themes目录)下的子目录对比在配置文件中(properties文件)中的系统当前使用皮肤值,如果对比成功则加载该目录下面的CSS文件到页面,当然也可以动态在后台进行变更 我两套方案都是使用的velocity模板引擎作为视图层..后台还可以直接通过编辑器编辑模板文件实现布局的更改等.. |
|
返回顶楼 | |
发表时间:2008-11-29
spring MVC 有相应的实现,不过没有非常深入的了解
|
|
返回顶楼 | |